티스토리 뷰

반응형

 

사용자가 정수 12345를 입력하면,

54321순으로 출력하는 프로그램이다.

 

do-while문을 이용하며,

12345에서 100의 자리를 구하는 방법은

12345를 100으로 나눈 후

(12345 / 100 = 123)

다시 10으로 나눈 나머지를 구하는 것이다.

( 123 % 10 = 3)

 

1000의 자리는 1000으로 나눈 후

10으로 나눈 나머지를 구한다.

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
 
int main(void)
{
    int num;
 
    printf("정수를 입력하세요 : ");
    scanf_s("%d"&num); // 정수를 입력받아 num에 저장
 
    do {
        printf("%d", num % 10);
        num = num / 10;
    } while (num); // 반복문이 끝나는 조건식
 
    return 0;
}
 
cs

 

 

 

 

  - 결과  

 

 

 

 

  - 설명  

12345를 예시로 들면,

54321 순으로 출력해야 한다.

 

5는 12345 % 10으로 구할 수 있고,

4는 12345 / 10 -> 1234 % 10,

3은 12345 / 100 -> 123 % 10,

2는 12345 / 1000 -> 12 % 10,

1은 12345 / 10000으로 구할 수 있고,

이후에 12345/100000을 하게 되면 

0이 된다.

 

이것을 어떻게 반복시켜야 하는지 

고민이 많았는데,

 

do-while문으로 일단 num % 10을 한

마지막 자리를 출력하고,

반복될 때마다 num을 10으로 나누어

다시 저장하여

12345 -> 1234 -> 123 -> 12 -> 1 

이 되도록 하였다.

 

그 값들을 매번 10으로 나눈 나머지를 구하므로

12345의 오른쪽 끝부터 

숫자가 역순으로 출력될 수 있었다.

 

while문의 조건식에는 num을 써서,

num이 참일 때만 반복하도록 하였는데

0이 아닌 값은 모두 참이므로

num != 0 의 식과 같다고 볼 수 있다.

반응형
댓글
반응형
Recent Post.
Recent Reply.
Thanks for comming.
오늘은
명이 방문했어요
어제는
명이 방문했어요