1002. 写出这个数 (20)

读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。

输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100

输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。

输入样例:

1234567890987654321123456789

输出样例:

yi san wu
 1 #include<stdio.h>
 2 
 3 void printSum(int num)
 4 {
 5     char numStr[10][10] = {"ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"};
 6     
 7     int i,k;
 8     int numArray[10];
 9     for(i = 0 ; num >= 10 ; i++)
10     {
11         numArray[i] = num % 10;
12         num = num / 10;
13     }
14     numArray[i] = num;   //numArry is a array
15     for(k = i; k >= 0; k--)
16     {
17         if(k == i)
18             printf("%s", numStr[numArray[k]]);
19         else
20             printf(" %s", numStr[numArray[k]]);
21     }
22 }
23 
24 
25 int main()
26 {
27     int sum = 0, i;
28     char num[120];
29     while(scanf("%s", num) != EOF)
30     {
31         for(i = 0; num[i] != '\0'; i++)
32         {
33             if(num[i] > '9' || num[i] < '0')
34             {
35                 printf("error");
36                 exit(0);
37             }
38             sum += (num[i] - '0');
39         }
40         //printf("%d", sum);
41         printSum(sum); //将sum 打印出来
42     }
43     return 0;
44 }

 

posted @ 2017-02-26 12:05  大波非猫  阅读(198)  评论(0编辑  收藏  举报