정수(0 <= n <= 2147483647) : 1234567890
십이억삼천사백오십육만칠천팔백구십
#include <stdio.h> int main() { char str[12] = "\0"; char *ill[] = {"영", "일", "이", "삼", "사", "오", "육", "칠", "팔", "구"}; int num, i, j, l, rest; printf("정수(0 <= n <= 2147483647) : "); scanf("%d", &num); // 정수 입력 sprintf(str, "%d", num); // 문자열로 바꿈 if (num > 2147483647 || num < 0) { // 유효값 확인 printf("범위 초과.\n"); return 0; } for (i = 0; str[i]; i++); // 자릿수 확인 l = i - 1; // 최대 길이 for (i = 0; i <= l; i++) { rest = l - i; if (num > 0 && rest == 0 && str[i] == '0'); // 0이 아니면서 일의 자리가 0 else if (num > 0 && rest > 0 && str[i] == '0'); // 일의 자리가 아닌 모든 0 else if (rest > 0 && rest % 4 != 0 && str[i] == '1'); // 십의 자리 이상에서 1일 때 else printf("%s", ill[str[i]-'0']); // // 숫자 출력 if (rest == 0) break; // 1의 자리까지 출력했으면 종료 else if (rest % 4 == 1 && str[i] != '0') printf("십"); else if (rest % 4 == 2 && str[i] != '0') printf("백"); else if (rest % 4 == 3 && str[i] != '0') printf("천"); if (rest == 4 && num - (num / 100000000 * 100000000) - num % 10000 != 0) printf("만"); // 천만 ~ 만 단위에 값이 있으면 else if (rest == 8) printf("억"); // 억단위 이상이면 } } | cs |
다음검색