读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
输入格式:
每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10100。
输出格式:
在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。
输入样例:
1234567890987654321123456789
输出样例:
yi san wu
思路:
1.由于输入数据最大位数超过整型范围,因此采用char类型数组存储;
2.采用二维数组存储result拼音,相对于switch-case代码量更少,更简洁;
3.将各位数储存的数字当成数组result的元素,节省时间。
代码实现:
#include <stdio.h>
#include <string.h>
int main(void){
char ch[101],a[5];
char result[][5]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
int sum=0,cnt=0;//初始化
gets(ch);
for(int i=0;i<strlen(ch);i++){
sum += ch[i]-'0';
}
while(sum>0) {
a[cnt]=sum%10;
sum/=10;
cnt++;
}
for(int i=cnt-1; i>0; i--){
printf("%s ",result[a[i]]);
}
printf("%s",result[a[0]]);//最后一位后面不需要空格,单独输出
return 0;
}

博客介绍读入正整数n,计算其各位数字之和,并用汉语拼音写出和的每一位数字。说明了输入输出格式,还给出思路,如用char数组存输入数据、二维数组存拼音等,最后提及代码实现。
1万+

被折叠的 条评论
为什么被折叠?



