7-0 写出这个数

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

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

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

输入样例:

1
1234567890987654321123456789

输出样例:

1
yi san wu

这年头,太笨了,这题错了好几遍。思路没理清就开始扯

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include "stdio.h"

int int2str(int i, int last);
void pstr(int s);

int main(){
int n = 0, sum = 0;
char p = '0';
scanf("%c", &p);
while(p != '\n'){
sum+= (p-'0');
scanf("%c", &p);
}
pstr(sum);
return 0;
}

int int2str(int i, int last){
switch(i){
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(last == 0) printf(" ");
}

void pstr(int s){
int tmp = 1;
while(s/tmp != 0){
tmp*=10;
}
while(tmp > 1){
tmp/=10;
int2str((s/tmp) % 10, tmp == 1);
}
}