Advertisement
Guest User

Untitled

a guest
Jan 19th, 2017
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.25 KB | None | 0 0
  1. #include <stdio.h>
  2. #define MAX_RESULT_LENGTH 1024
  3.  
  4. int main() {
  5.  
  6. int input, target; //처음 입력값과 바꾸려는 진법
  7. char result[MAX_RESULT_LENGTH]; //결과를 담아낼 배열(아스키 코드 형식으로 저장할 것임)
  8. int currentIndex; //현재 result 배열에 몇 번째에 입력 중인지(반복문을 몇 번 돌았는지)
  9. printf("10진수 값 하나와 변환할 진법을 입력하세요 : ");
  10. scanf("%d %d", &input, &target);
  11.  
  12. //for문
  13. for (currentIndex = 0; input > 0; input /= target, currentIndex++) {
  14. int num = input % target;
  15.  
  16. //
  17. //if (num < 10) {
  18. // result[currentIndex] = num + '0'; //0~9의 자연수에 대해 아스키 코드로 변환
  19. //}
  20. //else {
  21. // result[currentIndex] = num - 10 + 'A'; //10 이상에 대해서 A~알파벳을 사용해 아스키 코드로 변환
  22. //}
  23. //삼항연산자를 사용하면
  24. result[currentIndex] = num < 10 ? num + '0' : num - 10 + 'A';
  25. //와 같이 한 줄로 표현 가능
  26.  
  27. }
  28.  
  29. currentIndex--; //for문을 나갈 시점에 currentIndex가 한 번 더 더해졌지만 그 자리에 입력되지 않았으므로 그 이전으로 돌아감
  30. for (; currentIndex >= 0; currentIndex--) printf("%c", result[currentIndex]); //for문을 거꾸로 돌면서 각 문자를 출력
  31.  
  32.  
  33. return 0;
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement