该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
这是小白刷的基础题,跪求大佬帮忙!!!
题目:读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。
输出格式:在一行内输出n的各位数字之和的每一位的拼音。
输入样例:
1234567890987654321123456789
输出样例:
yi san wu
///
#include
int add(int d);
int pri(int c);
int main()
{
long x,sum=0;
printf("请输入一个自然数:\n");
scanf("%ld",&x);
while(x!=0)
{
sum+=x%10;
x/=10;
}
add(sum);
return 0;
}
int add(int d)
{
int b;
while(d!=0)
{
b=d%10;
d/=10;
if(0==d)
{
pri(b);
break;
}
add(d);
pri(b);
}
return 0;
}
int pri(int c)
{
switch(c)
{
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;
default:
printf("jiu ");
}
return 0;
}
//
编译链接没问题。问题是编写的内容有点问题,算出来的不太符合题目要求。比如,我输入345,他就出来个yi er yi。输入456。它输出yi wu yi 。老是多一个。怎么办,求解答!!!