728x90
반응형
1. 다음은 정수를 역순으로 출력하는 C언어 프로그램이다.
예를들어 1234의 역순은 4321이다. 단, 1230처럼 0으로 끝나는 정수는 고려하지 않는다.
프로그램을 분석하여 괄호(1~3) 안에 들어갈 알맞은 연산자를 쓰시오
#include <stdio.h>
int main() {
int number = 1234;
int divider = 10;
int result = 0;
while (number (①) 0) { // (1)정답 : >
result = result * divider;
result = result + number (②) divider; // (2)정답 : %
number = number (③) divider; // (3)정답 : /
}
printf("%d", result);
return 0;
}
변수 선언
- number: 역순으로 변환할 정수입니다. 예시에서는 1234입니다.
- divider: 각 자리수를 분리하기 위해 사용되는 값으로 10으로 초기화되어 있습니다.
- result: 역순으로 변환된 결과를 저장할 변수입니다.
728x90
각 단계 설명
- 루프 조건: number > 0
- number가 0보다 큰 동안 반복합니다.
- number가 0이 되면 루프가 종료됩니다.
- result = result * divider
- 현재 result 값을 10배 증가시킵니다.
- 예를 들어, 처음 result는 0이므로 이 부분은 영향을 미치지 않습니다. 이후에는 새로운 자리수를 추가할 공간을 만듭니다.
- result = result + number % divider
- number의 마지막 자리를 result에 추가합니다.
- number % divider는 number의 마지막 자리를 구합니다. 예를 들어, 1234 % 10은 4입니다.
- result에 마지막 자리를 더합니다. 예를 들어, 현재 result가 0이라면 0 + 4 = 4가 됩니다.
- number = number / divider
- number의 마지막 자리를 제거합니다.
- number / divider는 number를 10으로 나눈 몫을 구합니다. 예를 들어, 1234 / 10은 123입니다.
- 다음 루프에서는 새로운 number로 123이 사용됩니다.
예제 동작 과정
초기 값:
- number = 1234
- divider = 10
- result = 0
첫 번째 반복:
- result = result * divider => result = 0 * 10 => result = 0
- result = result + number % divider => result = 0 + 1234 % 10 => result = 0 + 4 => result = 4
- number = number / divider => number = 1234 / 10 => number = 123
두 번째 반복:
- result = result * divider => result = 4 * 10 => result = 40
- result = result + number % divider => result = 40 + 123 % 10 => result = 40 + 3 => result = 43
- number = number / divider => number = 123 / 10 => number = 12
세 번째 반복:
- result = result * divider => result = 43 * 10 => result = 430
- result = result + number % divider => result = 430 + 12 % 10 => result = 430 + 2 => result = 432
- number = number / divider => number = 12 / 10 => number = 1
네 번째 반복:
- result = result * divider => result = 432 * 10 => result = 4320
- result = result + number % divider => result = 4320 + 1 % 10 => result = 4320 + 1 => result = 4321
- number = number / divider => number = 1 / 10 => number = 0
루프 종료:
- number가 0이므로 루프가 종료됩니다.
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
728x90
반응형
'코딩일기 > 자격증' 카테고리의 다른 글
[정보처리기사] 기능 요구사항 vs 비기능 요구사항: 정의와 예시로 이해하기 (0) | 2024.07.17 |
---|---|
[정보처리기사] RAID(Redundant Array of Independent Disks) : 2022년도 기출문제 (0) | 2024.07.17 |
[정보처리기사] 연산자 우선순위 (1) | 2024.07.16 |
[정보처리기사] 나선형 모델(Spiral Model, 점진적 모형) (0) | 2024.07.15 |
정보처리기사 소프트웨어 개발 : 디지털 저작권 관리(DRM) 의 구성요소와 기술 요소 (0) | 2024.07.11 |