解题思路:
思路一:先计算出这个整数有多少位,然后从高位到低位依次
拆分并进行输出,用此思路写出来的代码注意最后的循环条件要
写成while(count>=1),不能用while(n>=0)
思路二:用数组存储数字的每一位(与思路一的区别就在这)
代码会稍微少点也比较简洁
#include <stdio.h>
#include <math.h>
int main()
{
int n,n1,count=0,k;
scanf("%d",&n);
if(n<0)
{
printf("fu ");
n=-n;
}
if(n==0)
printf("ling");
n1=n;
while(n1>0)
{
n1=n1/10;
count++;
}
while(count>=1)
{
k=n/(pow(10,(count-1)));
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;
}
if(count!=1)
printf(" ");
n=n-k*pow(10,(count-1));
count--;
}
return 0;
}