// 读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
//
// 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100。
//
// 输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。
// 输入样例:1234567890987654321123456789
//
// 输出样例:yi san wu
#include <stdio.h>
#include <string.h>
int main(void)
{
char num[101]; // 用来存储用户输入,因为题目限制输入的数最大不过10的100次方,所以这个空间就够用了
int sum = 0; // 用来存储各位的和
int ssum[3]; // 用来分位存储sum的值,因为其值据题义不会超过900,所以这个空间够用了
char pinyin[10][5] = { "ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu" };
scanf("%s", num);
for (int i = 0; i < strlen(num); i++)
sum += num[i] - '0';
int i; // i用来记录在ssum数组中有几位是有效的
// 在下面这个循环中,将算出来的和sum以数组的形式逆向存储在ssum数组中
for (i = 0; sum != 0; i++)
{
ssum[i] = sum % 10;
sum /= 10;
}
// 该循环结束后,ssum数组中有i个数字为有效值,
// 将ssum数组中的值逆序输出,输出样式对应着pinyin数组中的内容
for (; i >0; i--)
{
printf("%s", pinyin[ssum[i - 1]]);
if (i != 1)
printf(" ");
}
return 0;
}
// 该题略有意思,计算机等级考试二级C语言65分水平,适宜于熟悉C语言的基础
1002 写出这个数
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.