读入一个正整数 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 }
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/605728.html