1. 读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。★☆

  2. 读入一个整数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。★★

输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100。

输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。

 输入样例: 1234567890987654321123456789 输出样例: yi san wu
#include
#include
void int_to_string(int n) { switch (n) { case 0: printf("%s", "ling"); break; case 1: printf("%s", "yi"); break; case 2: printf("%s", "er"); break; case 3: printf("%s", "san"); break; case 4: printf("%s", "si"); break; case 5: printf("%s", "wu"); break; case 6: printf("%s", "liu"); break; case 7: printf("%s", "qi"); break; case 8: printf("%s", "ba"); break; case 9: printf("%s", "jiu"); break; default: break; }}void string_output(int num) { if (num / 10) { string_output(num / 10); if ((num / 10) != 0) { printf(" "); } int_to_string(num % 10); } else { int_to_string(num); }}int get_Input_Sum() { char ch; int sum = 0; while ((ch = getchar()) != '\n') { if (isdigit(ch)) { sum += ch - 0x30; } } return sum;}void int_to_reverse(int num) { if (num < 0) { num = -num; int_to_string(-1); printf(" "); string_output(num); } else if (num == 0) { int_to_string(0); } else { string_output(num); }}int main() { int_to_reverse(get_Input_Sum()); return 0;}

output:

12345678909876543210213123yi ling er