标签:
1 #include<stdio.h> 2 #include<math.h> 3 #include<string.h> 4 #include<stdlib.h> 5 #include<ctype.h> 6 #define max(a, b)(a < b ? a : b) 7 #define N 10010 8 9 char s[10][10] = {"one", "two", "three", "four", "five", "six", "seven","eight", "nine", "ten"}; 10 char s1[10][10] = {"ten", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"}; 11 char s2[10][10] = {"eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"}; 12 13 int main() 14 { 15 int n; 16 int a[N], j, i, f, g; 17 while(scanf("%d", &n) != EOF) 18 { 19 j = 0, f = 0, g = 0; 20 memset(a, 0, sizeof(a)); 21 if(n == 0) 22 printf("zero"); 23 else 24 { 25 while(n) 26 { 27 a[j++] = n % 10; 28 n /= 10; 29 } 30 } 31 if(j == 1) 32 printf("%s", s[a[0] - 1]); 33 else 34 { 35 for(i = j - 1 ; i >= 0 ; i--) 36 { 37 if(i == 3) 38 printf("%s thousand", s[a[i] - 1]), f = 1; 39 else if(i == 2) 40 { 41 if(a[i] != 0) 42 { 43 if(f == 1) 44 printf(" and "); 45 printf("%s hundred", s[a[i] - 1]); 46 } 47 if(a[i - 1] != 0 || a[i - 2] != 0) 48 g = 1; 49 50 } 51 else if(i == 1) 52 { 53 if(g == 1) 54 printf(" and "); 55 if(a[i] == 1 && a[i - 1] != 0) 56 printf("%s", s2[a[i - 1] - 1]); 57 else 58 { 59 if(a[i] == 0) 60 printf("%s", s[a[i - 1] - 1]); 61 else 62 { 63 if(a[i - 1] == 0) 64 printf("%s", s1[a[i] - 1]); 65 else 66 { 67 printf("%s-%s", s1[a[i] - 1], s[a[i - 1] - 1]); 68 } 69 } 70 } 71 } 72 } 73 } 74 printf("\n"); 75 } 76 return 0; 77 }
2034 1234 123 24 0
two thousand and thirty-four one thousand and two hundred and thirty-four one hundred and twenty-three twenty-four zero
标签:
原文地址:http://www.cnblogs.com/yishilin/p/4448331.html