100제 [기초 - 반복실행구조] 1071~1077

  1. 정수가 순서대로 입력된다.
    -2147483648 ~ +2147483647, 단 개수는 알 수 없다.
    0이 아니면 입력된 정수를 출력하고, 0이 입력되면 출력을 중단해보자.
    while( ), for( ), do~while( ) 등의 반복문을 사용할 수 없다.
#include <stdio.h>
int main()
{
    int x;
    input:
    scanf("%d",&x);
    if(x!=0)
    {
    printf("%d\n",x);
    goto input;
    }
    return 0;
}

사실 편하게 반복문돌리면 좋은데, 문제에 쓰지말고 goto로 풀어라 라고 나와있다.
goto input하면 scanf위 input:이라고 나와있는데로 돌아가는건데, 나는 배울때
나중에는 코드가 복잡하게 꼬이고, 컴파일과정에서도 오류가 날수있기도하고, 다른프로젝트인원들과도 소통이 어려워지니까 되도록이면 쓰지말라고 배웠다.
그래도 뭔지는 알고있어야하니까 이렇게 쓰는거다~ 라고만 알고있자.

  1. n개의 정수가 순서대로 입력된다.
    -2147483648 ~ +2147483647, 단 n의 최대 개수는 알 수 없다.
    n개의 입력된 정수를 순서대로 출력해보자.
    while( ), for( ), do~while( ) 등의 반복문을 사용할 수 없다.
#include <stdio.h>
int main()
{
    int x,y;
    scanf("%d",&x);
    input:
    scanf("%d",&y);
    printf("%d\n",y);
    x--;
    if(x!=0)
    goto input;
    return 0;
}
  1. 정수가 순서대로 입력된다.
    -2147483648 ~ +2147483647, 단 개수는 알 수 없다.
    0이 아니면 입력된 정수를 출력하고, 0이 입력되면 출력을 중단해보자.
#include <stdio.h>
int main()
{
    int x;
    while(1)
    {
        scanf("%d",&x);
        if(x==0)
        break;
        printf("%d\n",x);
    }
    return 0;
}

그냥 맘편하게 while문을 쓰자.

  1. 정수(1 ~ 100) 1개가 입력되었을 때 카운트다운을 출력해보자.
#include <stdio.h>
int main()
{
    int x;
    scanf("%d",&x);
    while(x!=0)
    printf("%d\n",x--);
    return 0;
}

카운트다운은 0까지 이루어지기때문에
x가 0이될때까지 반복시켜주고 반복할때마다 -1씩 줄이면서 출력해주면 됨

  1. 정수(1 ~ 100) 1개가 입력되었을 때 카운트다운을 출력해보자.
    74번과 같은문제라 생략한다.
  1. 영문자(a ~ z) 1개가 입력되었을 때 그 문자까지의 알파벳을 순서대로 출력해보자.
#include <stdio.h>
int main()
{
    char i,c;
    scanf("%c",&c);
    for(i='a';i<=c;i++)
    {
        printf("%c ",i);
    }
    return 0;
}

문자 1개를 출력할때는 아스키코드값을 참고하면 된다.(C언어 문법 ASCII Code참고)
a는 아스키코드값 97, z는 122이다.
근데 굳이 아스키코드값을 몰라도 출력할수 있다. 'a', 'z' 이런식으로 작은따옴표안에 알파벳을 넣으면 아스키코드값이 된다.

  1. 정수(0 ~ 100) 1개를 입력받아 0부터 그 수까지 순서대로 출력해보자.
#include <stdio.h>
int main()
{
    int x,i=0;
    scanf("%d",&x);
    for(i=0;i<=x;i++)
    {
        printf("%d\n",i);
    }
    return 0;
}

그리고 while문과 for문중에서 뭘 써야할지 모를떄는(개인적인 의견)
반복해야할 범위가 대충 정해져있을때는 for문을 주로쓴다
ex) 구구단, ~부터 ~까지 출력(비교적 작은범위내에), 입력한값만큼 반복할때(작은범위내에)등등..
그리고 반복해야할 범위가 꽤 많거나, 안정해져있을때는 주로while문을 쓴다.
ex) 0이 입력될때까지 반복, ~까지 출력(큰범위), ~가 참/거짓일때 까지

좋은 웹페이지 즐겨찾기