不用拼音数组,用switch case来实现。
#include<stdio.h>
#include<string.h>
int main (){
int sum=0;
int i;
char ch[100];
//for (i=0;i<100;i++){
// ch[i]='0';
//}
gets(ch);
for (i=0;i<strlen(ch);i++){
sum+=(ch[i]-'0');
printf("%d\n",sum);
}
//求出sum的位数
int mask =1;
int t=sum;
while ( t>9 ) {
t/=10;
mask *=10;
}
printf("和的等级是mask=%d\n",mask);
//利用位数来求出sum的每个数位上的数字并打印
do{
int d=sum/mask;
//scanf("%d",&d);
switch (d) {
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;
case 0:
printf("ling");
break;}
if( mask>9 ){
printf(" ");
}
sum %= mask;
mask/=10;
} while ( mask>0 );
return 0;
}