티스토리 뷰

아래의 C언어 문제를 풀어봅시다.

Write a program that inputs one five-digit number, separates the number into its individual digits and prints the digits separated from one another by three spaces each.
[Hint : Use combinations of integer division and the remainder operation.]
For example, if the user types in 42139, the program should print


4   2   1   3   9



문제를 해석해 보니 아래와 같네요.

한 5자리 수를 입력받은 후, 입력받은 5자리 수를 각각의 수로 분리합니다.
그 다음 각 수가 공백 3칸마다 한 자리씩 출력되도록 소스코드를 작성해 보세요.


나는 아래와 같이 작성했다.


  1. /*Write a program that inputs one five-digit number, separates the number into its individual digits and prints the digits separated from one another by three spaces each.
  2. [Hint : Use combinations of integer division and the remainder operation.]
  3. For example, if the user types in 42139, the program should print */

  4. #include<stdio.h>

  5. int main()
  6. {
  7. // input_number : 입력받을 다섯자리를 저장할 변수
  8. // temp : 임시로 수를 저장할 변수
  9. int input_number = 0 ;
  10. int temp=0;
  11. int reminder=0 ;

  12. // 5자리 정수 입력
  13. scanf("%d", &input_number) ;
  14. reminder = input_number ;

  15. // 1번째 자리 출력
  16. // 10000으로 나눈 몫이 1번째 숫자이므로 temp에 저장한 후 출력한다.
  17. // 예) 42139 / 10000 => 4
  18. // 10000으로 나누면 출력하지 않은 나머지 4자리 숫자가 남는다. 이를 reminder에 저장한다.
  19. // 예) 42139 % 10000 => 2139
  20. temp = input_number / 10000;
  21. reminder = input_number % 10000 ;
  22. printf("%d ", temp );

  23. // 2번째 자리 출력
  24. // 1000으로 나눈 몫이 2번째 숫자이므로 temp에 저장한 후 출력한다.
  25. // 예) 2139 / 1000 => 2
  26. // 1000으로 나누면 출력하지 않은 나머지 3자리 숫자가 남는다. 이를 reminder에 저장한다.
  27. // 예) 2139 % 1000 => 139
  28. temp = reminder / 1000 ;
  29. reminder = reminder % 1000 ;
  30. printf("%d ", temp );

  31. // 3번째 자리 출력
  32. // 100으로 나눈 몫이 3번째 숫자이므로 temp에 저장한 후 출력한다.
  33. // 예) 139 / 100 => 1
  34. // 100으로 나누면 출력하지 않은 나머지 2자리 숫자가 남는다. 이를 reminder에 저장한다.
  35. // 예) 139 % 100 => 39
  36. temp = reminder / 100 ;
  37. reminder = reminder % 100 ;
  38. printf("%d ", temp );

  39. // 4번째 자리 출력
  40. // 10으로 나눈 몫이 4번째 숫자이므로 temp에 저장한 후 출력한다.
  41. // 예) 39 / 10 => 3
  42. // 10으로 나누면 출력하지 않은 나머지 1자리 숫자가 남는다. 이를 reminder에 저장한다.
  43. // 예) 39 % 10 => 9
  44. temp = reminder / 10 ;
  45. reminder = reminder % 10 ;
  46. printf("%d ", temp );

  47. // 5번째 자리 출력
  48. // 마지막은 1자리 숫자를 그대로 출력한다.
  49. printf("%d\n", reminder );
  50. return 0 ;
  51. }



위 소스의 출력결과는 아래와 같다.


댓글