读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10100。 输出格式: 在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。 输入样例: 1234567890987654321123456789
输出样例: yi san wu
#include <stdio.h> int main() { int sum=0,i=0,n=0,test,b=0; char a[101]={}; while(1) { scanf("%c",&a[i]); if(a[i]>='0'&&a[i]<='9') i++; else break; } a[i]='\0'; i=0; while(a[i]!='\0') { sum+=a[i]-'0'; i++; } test=sum; while(1) { n++; test/=10; if(test==0) break; } test=sum; while(test) { b*=10; b+=test%10; test/=10; } sum=b; while(n) { if((sum%10<=9&&sum%10>=0)&&n!=1) switch(sum%10) { case 0:printf("ling ");break; case 1:printf("yi ");break; case 2:printf("er ");break; case 3:printf("san ");break; case 4:printf("si ");break; case 5:printf("wu ");break; case 6:printf("liu ");break; case 7:printf("qi ");break; case 8:printf("ba ");break; case 9:printf("jiu ");break; } else switch(sum%10) { case 0:printf("ling");break; case 1:printf("yi");break; case 2:printf("er");break; case 3:printf("san");break; case 4:printf("si");break; case 5:printf("wu");break; case 6:printf("liu");break; case 7:printf("qi");break; case 8:printf("ba");break; case 9:printf("jiu");break; } sum/=10; n--; } return 0; }整题体的思路主要while和数组结合的一种方式,在其中使用了switch。在第一次这个没什么思路,所以说整个代码看起来有些冗杂