티스토리 뷰
Programming Language/C basic
[C언어] CHAPTER 07 반복문 / Programming 14 / 사용자가 입력한 정수 거꾸로 출력하기
또야 2021. 3. 29. 16:36반응형
사용자가 정수 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 의 식과 같다고 볼 수 있다.
반응형
'Programming Language > C basic' 카테고리의 다른 글
[C언어] CHAPTER 08 함수 / 동전 던지기 게임 (앞면이 나온 횟수와 뒷면이 나온 횟수 출력하기) (0) | 2021.04.03 |
---|---|
[C언어] CHAPTER 08 함수 / 실행할 때마다 발생되는 난수 다르게 하기 (시드 사용) (0) | 2021.04.03 |
[C언어] CHAPTER 07 반복문 / Programming 12 / 피보나치 수열 (0) | 2021.03.27 |
[C언어] CHAPTER 07 반복문 / Programming 07 / 2와 100 사이에 있는 모든 소수를 찾는 프로그램 (0) | 2021.03.27 |
[C언어] CHAPTER 07 반복문 / goto문을 활용하여 중첩 반복문에서 외부로 빠지기 (0) | 2021.03.27 |
댓글
반응형
Recent Post.
Recent Reply.
- Thanks for comming.
- 오늘은
- 명이 방문했어요
- 어제는
- 명이 방문했어요