读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100。
输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。
输入样例:
1234567890987654321123456789
输出样例:
yi san wu
#include "stdio.h"
#include "string.h"
char *wz(int n){
char *c=NULL;
//阿拉伯数字对应的拼音
switch(n){
case 0:c="ling";break;
case 1:c="yi";break;
case 2:c="er";break;
case 3:c="san";break;
case 4:c="si";break;
case 5:c="wu";break;
case 6:c="liu";break;
case 7:c="qi";break;
case 8:c="ba";break;
case 9:c="jiu";break;
}
return c;
}
int main(){
char s[110];
while(scanf("%s",s)!=EOF){
int s1[110]={0};
int n=strlen(s);
int sum=0;
//将数字求和
for(int i=0;i<n;i++){
sum+=s[i]-'0';
}
//printf("%d",sum);
int j=0;
//求出有几位
while(sum){
s1[j]=sum%10;
sum=sum/10;
j++;
}
char * ps=NULL;
//输出
for(int i=j-1;i>0;i--){
ps=wz(s1[i]);
printf("%s ",ps);
}
printf("%s\n",wz(s1[0]));
}
}