在浙大pat的乙级题目中遇到如下题目
只过了第二个测试点,我找不出其他测试点在哪,只好把代码发出来公开处刑,请各路大神指点一二
#include<stdio.h>
int main()
{
char n;
int sum=0,mask=1,t,k;
n=getchar();
while(n!='\n')
{
sum+=n-48;
n=getchar();
}
//printf("%d",sum);
t=sum;
if(n<9)
{
switch(n)
{
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;
}
}
else
for(;t>9;)
{
t/=10;
mask*=10;
}
for(;mask>9;)
{
k=sum/mask;
sum=sum-k*mask;
mask/=10;
switch (k)
{
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;
}
}
switch (sum)
{
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;
}
}