Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #define MAX_RESULT_LENGTH 1024
- int main() {
- int input, target; //처음 입력값과 바꾸려는 진법
- char result[MAX_RESULT_LENGTH]; //결과를 담아낼 배열(아스키 코드 형식으로 저장할 것임)
- int currentIndex; //현재 result 배열에 몇 번째에 입력 중인지(반복문을 몇 번 돌았는지)
- printf("10진수 값 하나와 변환할 진법을 입력하세요 : ");
- scanf("%d %d", &input, &target);
- //for문
- for (currentIndex = 0; input > 0; input /= target, currentIndex++) {
- int num = input % target;
- //
- //if (num < 10) {
- // result[currentIndex] = num + '0'; //0~9의 자연수에 대해 아스키 코드로 변환
- //}
- //else {
- // result[currentIndex] = num - 10 + 'A'; //10 이상에 대해서 A~알파벳을 사용해 아스키 코드로 변환
- //}
- //삼항연산자를 사용하면
- result[currentIndex] = num < 10 ? num + '0' : num - 10 + 'A';
- //와 같이 한 줄로 표현 가능
- }
- currentIndex--; //for문을 나갈 시점에 currentIndex가 한 번 더 더해졌지만 그 자리에 입력되지 않았으므로 그 이전으로 돌아감
- for (; currentIndex >= 0; currentIndex--) printf("%c", result[currentIndex]); //for문을 거꾸로 돌면서 각 문자를 출력
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement