[C언어 코드업 문제풀이] CodeUp 1073 : [기초-반복실행구조] 0 입력될 때까지 무한 출력하기2(설명)

코드업 1073번  [기초-반복실행구조] 0 입력될 때까지 무한 출력하기2 문제 풀이 해답입니다.

 

1. 문제 설명

 

정수가 순서대로 입력된다.
-2147483648 ~ +2147483647, 단 개수는 알 수 없다.

0이 아니면 입력된 정수를 출력하고, 0이 입력되면 출력을 중단해보자.


if(조건)
{ //코드블록
  ...;
}
구조를 사용하면 주어진 조건이 참인 경우만 코드블록 부분이 실행된다.

비슷하게 어떤 조건에 따라 반복적으로 실행시킬 때에는 if를 while로 바꾸기만 하면

while(조건)
{ //코드블록
  ...;
}

와 같은 방법으로 코드블록의 내용을 반복적으로 수행시킬 수 있다.

수행되는 과정은
1. 먼저 조건을 검사한다.
2. 코드블록을 실행한다.
3. 다시 조건을 검사한다.
4. 코드블록을 실행한다.
...

와 같이 주어진 조건이 참인 동안 계속적으로 반복 실행한다.
이렇게 while(조건){...}을 이용하면 goto 명령을 사용하지 않고
반복을 만들어낼 수 있다.

예시
int n=1; //처음 조건 검사를 넘어가기 위해 0이 아닌 값 입력
while(n!=0)
{
  scanf("%d", &n);
  printf("%d", n);
} 

 

2. 입력

 

정수가 순서대로 입력된다.
-2147483648 ~ +2147483647, 단 개수는 알 수 없다. 

 

3. 출력

 

입력된 정수를 줄을 바꿔 하나씩 출력하는데, 0이 입력되면 종료한다.
(0은 출력하지 않는다.) 

 

4. 입력 예시

 

7 4 2 3 0 1 5 6 9 10 8

 

5. 출력 예시

 

7

4

2

3

 

6. 문제 풀이

 

#include <stdio.h>
 
 
int main (void)
{
    
    int num1 = 1;
    
    while(num1 != 0){
        
        scanf("%d",&num1);
        if(num1 !=0){printf("%d\n",num1);}
    }
 
    return 0;
}
 

 

while문은 참일때만 동작합니다. 여기서는 0을 입력받으면 종료하므로

먼저 num1을 0이 아닌 숫자로 초기화하여 while문을 참으로 만들어주고 입력을 받습니다.

0이 출력되면 안되므로 if문으로 0이 아닐 경우에만 입력 받은 값을 출력해줍니다.

댓글()