该题要注意取倒后末尾零的处理,如果处理好了,这道题就会容易很多。
#include<stdio.h>
#include<math.h>
int main()
{
int x,a,b,y;
int c=0;
scanf("%d",&x);
y=fabs(x);
if(x<0)
{
printf("fu ");
x=-1*x;
}
while(x>0)
{
b=x%10;//个位数
c=c*10+b;//b累加
x/=10;
}
do
{
a=c%10;
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;
}
if(c>9)
printf(" ");
c/=10;
}while(c!=0);
while(y%10==0&&y>10)
{
printf(" ling");
y/=10;
}
return 0;
}