표준 입력으로 정수 두 개가 입력됩니다(첫 번째 입력 값의 범위는 1~200, 두 번째 입력 값의 범위는 10~200이며 첫 번째 입력 값은 두 번째 입력 값보다 항상 작습니다). 다음 소스 코드를 완성하여 첫 번째 정수와 두 번째 정수 사이의 숫자 중 7로 끝나지 않는 숫자가 출력되게 만드세요.
표준 입력
1 10
표준 출력
1 2 3 4 5 6 8 9 10
judge_exclude_number_ending_7.c
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int num1;
int num2;
int i;
scanf("%d %d", &num1, &num2);
i = num1;
while (1)
{
________________
________________
________________
________________
________________
________________
________________
printf("%d ", i);
i++;
}
return 0;
}
정답
if (i % 10 == 7)
{
i++;
continue;
}
if (i > num2)
break;
풀이
먼저, 7로 끝나는 숫자를 출력하지 않기 위해 10으로 나누었을 때, 나머지가 7인 것을 제외시켜야 하므로 10으로 나누었을 때 나머지가
7이면 continue로 건너뛰어야 한다. 여기서 중요한 점은 continue 위에 i++;을 넣지 않으면 아래에 있는 i++까지 건너뛰게 되므로 continue 위에 i++;을 넣어주어야 한다. 다음으로 i가 num2와 숫자가 같아지면 break로 while 반복문을 중단해야 하므로 i가 num2보다 클 경우 반복문을 중단하는 if문을 만들어 범위를 제한한다.
'C' 카테고리의 다른 글
[C] C언어 코딩 도장 32.6 심사문제: 중첩 루프 빠져나오기 (0) | 2022.04.27 |
---|---|
[C] C언어 코딩 도장 31.7 심사문제: 산 모양으로 별 출력하기 (0) | 2022.04.27 |
[C] C언어 코딩 도장 29.10 심사문제: 숫자의 합 구하기 (0) | 2022.04.27 |
[C] C언어 코딩 도장 28.11 심사문제: 교통카드 잔액 출력하기 (0) | 2022.04.27 |
[C] C언어 코딩 도장 27.12 심사문제: 알파벳 순서로 출력하기 (0) | 2022.04.27 |