读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100。
输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。
输入样例:
1234567890987654321123456789
输出样例:
yi san wu
提交代码
#include <stdio.h>
void print(int a){
switch (a){
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;
default:
break;
}
}
int main(){
char num[105];
int sum=0;int i = 0;
int hund = 0,dec = 0,unit = 0;//百、十、个
scanf("%s",num);
for(;num[i]!='\0';i++){
sum += (num[i]-'0');
}
//printf("%d",sum);
if(sum>=100){
unit = sum % 10;
//printf("%d ",unit);
dec = (sum/10)%10;
//printf("%d ",dec);
hund = sum/100;
//printf("%d ",hund);
print(hund);
printf(" ");
print(dec);
printf(" ");
print(unit);
} else if(sum >= 10){
unit = sum%10;
dec = sum / 10;
print(dec);
printf(" ");
print(unit);
}else {
unit = sum;
print(unit);
}
return 0;
}