读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100。
输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。
输入样例:
1234567890987654321123456789
输出样例:
yi san wu
【提交代码】
1 void printVal(char *str) 2 { 3 int index[10] = {0}; /* index[0]:个位输出的数,index[1]:十位输出的数...*/ 4 int i, c, count; 5 6 char *pp[] = {"ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"}; 7 8 count = 0; 9 i = 0; 10 do{ 11 count += (str[i] - '0'); 12 i++; 13 }while(str[i] != 0); 14 15 c = 0; 16 do{ 17 index[c] = count % 10; 18 count /= 10; 19 c++; 20 }while(count != 0); 21 22 for(i = c-1; i >= 0; i--) 23 { 24 printf(i==0 ? "%s" : "%s ", pp[index[i]]); 25 } 26 } 27 28 int main(void) 29 { 30 char str[100]; 31 scanf("%s", &n); 32 printVal(n); 33 34 return 0; 35 }