有个编程问题,C语言,PAT1002,帮忙看一下谢谢了
#include<stdio.h>#include<math.h>
int main(){
int n,s=0,yushu=0,i,a[100];
scanf("%d",&n);
while(n!=0){
yushu=n%10;
s+=yushu;
n=n/10;
}
for(i=0;s>=10;i++){
yushu=s%10;
a[i]=yushu;
s=s/10;
}
a[++i]=s;
while(i>0){
yushu=a[i];
switch(yushu){
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;
}//switch
i--;
}
while(i=0){
yushu=a[i];
switch(yushu){
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;
}//switch
i--;
}
return 0;
}
这是浙大PAT B级的 1002一道题。 要求是读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
我在GCC上编的,程序上没错误。代码提交后显示答案错误。
输入562结果是错的,像数字小些就是对的。。
想了很久没看出来哪里出错了。。求大神帮忙看一下。。谢谢了。