思路:
1.由输入的范围可知n只能用字符数组储存
2.字符数组储存数字也更好分割每一位数,在将每一位数(字符)转化为整形数字(-'0')用一个变量累加起来
3.由于每个数字的拼音刚好对应该数字的数组下标,故可以直接设置一个二维字符数组
4.将累加值(整形值)每位%10得到每位的数存在整型数组中,因为每次得出的都是最后一位数字故需要倒序输出
#include<stdio.h>
int main(void)
{
int i,n=0,m,wxx3[101];
char wxx[10][5]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"},wxx2[101];
scanf("%s",wxx2);
for(i=0,m=0;wxx2[i]!='\0';i++)
m+=wxx2[i]-'0';
while(m){
wxx3[n++]=m%10;
m/=10;
}
for(i=n-1;i>=0;i--)
printf("%s%c",wxx[wxx3[i]],i!=0?' ':'\n');//临界在将空格变为换行符合题目要求的同时也更简洁
return 0;
}