读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
输入格式:
每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 1。
输出格式:
在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。
输入样例:
1234567890987654321123456789
输出样例:
yi san wu
1 #include<stdio.h>
2 #include<math.h>
3 #include<string.h>
4 #include<stdlib.h>
5 int main()
6 {
7
8 int i,sum=0,sumnum;
9 int num[100];
10 char length[100];
11 scanf("%s",length);
12 sumnum=strlen(length);
13 for(i=0;i<sumnum;i++)
14 {
15 num[i]=length[i]-'0';
16 sum=sum+num[i];
17 }
18 //此时sum为每一位数字的和
19
20 int num1[100];//定义一个数组储存sum每一位sum的数
21 i=0;//数组中i从0开始存个位
22 while(sum>0)
23 {
24 num1[i]=sum%10;
25 sum=sum/10;
26 i++;//i增加一位,数组存前一位
27 } //i也表示sum的位数
28 //此时要将数组中数字转化为拼音输出
29
30 for(i=i-1;i>=1;i--)//从num[i-1]开始输出头一位,到十位上的数
31 {
32 if(num1[i]==0)
33 printf("ling ");
34 else if(num1[i]==1)
35 printf("yi ");
36 else if(num1[i]==2)
37 printf("er ");
38 else if(num1[i]==3)
39 printf("san ");
40 else if(num1[i]==4)
41 printf("si ");
42 else if(num1[i]==5)
43 printf("wu ");
44 else if(num1[i]==6)
45 printf("liu ");
46 else if(num1[i]==7)
47 printf("qi ");
48 else if(num1[i]==8)
49 printf("ba ");
50 else
51 printf("jiu ");
52 }
53 if(num1[0]==0)//个位上的数单独输出
54 printf("ling");
55 else if(num1[0]==1)
56 printf("yi");
57 else if(num1[0]==2)
58 printf("er");
59 else if(num1[0]==3)
60 printf("san");
61 else if(num1[0]==4)
62 printf("si");
63 else if(num1[0]==5)
64 printf("wu");
65 else if(num1[0]==6)
66 printf("liu");
67 else if(num1[0]==7)
68 printf("qi");
69 else if(num1[0]==8)
70 printf("ba");
71 else
72 printf("jiu");
73 return 0;
74 }