题目
读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
输入格式:
每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10100。
输出格式:
在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。
输入样例:
1234567890987654321123456789
输出样例:
yi san wu
解题思路
题目意思是,给出一串数字,然后把这串数字的每位加起来,将得到的和转换为对应汉字的拼音。
例如样例给出数字和为135,转换的结果就是yi san wu
题目意思比较直白,按照题目说的做即可。
这里注意输入的数据范围为10100,范围比较大,一般数据类型存储不下,需要使用字符串处理
最后注意一下输出格式和顺序即可。
代码
#include<stdio.h>
#include<string.h>
char NumToChar[15][5]={
"ling","yi","er","san","si","wu",
"liu","qi","ba","jiu","shi"
};
char Num[100];
char Ans[20][5];
int main()
{
int n=0;
int i,j,k;
scanf("%s",&Num);
for(i=0;i<strlen(Num);i++)
{
n+=(Num[i]-'0');
}
// printf("n=%d\n",n);
i=0;
while(n!=0)
{
k=n%10;
n=n/10;
strcpy(Ans[i],NumToChar[k]);
i++;
}
i=i-1;
while(i>0)
{
printf("%s ",Ans[i]);
i--;
}
printf("%s\n",Ans[i]);
return 0;
}
疑难点以及一些测试数据
- 输入数据范围比较大,需要使用字符串来存储
- 注意输出格式