#include<stdio.h>intmain(void){int a =0, i =0;char e[100]={0};int f[100]={0};scanf("%s",e);//注意:把数字串中每位数字单独以char类型存储起来。//数字位数太长,最长为100位,故不能用int或者long int来存储要输入的数字。while( e[i])//遍历字符串e[i]{
a = a + e[i]-48;//遍历数字串每个位的数字,并相加,结果储存在a里。 e[i]-48是因为之前输入的每个数字是char类型,//以ASCII码储存的,ASCII码表中字符'0'对应的数字是48,‘1’为49...以此类推,//故用char类型数据-48,即可得到其真实数字。或者用e[i]-‘0’,本质一样。
i++;}for(i=0; a; i++){
f[i]= a %10;//f[i]用来存放a中各位数字,以便以中文输出各位数
a = a/10;}
i--;while(i+1){switch(f[i]){case0:printf("%s","ling");break;case1:printf("%s","yi");break;case2:printf("%s","er");break;case3:printf("%s","san");break;case4:printf("%s","si");break;case5:printf("%s","wu");break;case6:printf("%s","liu");break;case7:printf("%s","qi");break;case8:printf("%s","ba");break;case9:printf("%s","jiu");break;}if(i)printf(" ");//注意:最后一个拼音后不能有空格
i--;}return0;}