1002. 写出这个数

来源:互联网 发布:中国有多少网络作家 编辑:程序博客网 时间:2024/06/06 05:41

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

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

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


代码实现:

#include #include #include #include int sumOfNum(long long n);//计算自然数之和void readNum(int n);//读出自然数void readElement(char ch); //每位元素的读音int main(void){long long n = 0;int res = 0;printf("请输入一串数字:");scanf_s("%llu", &n);if (-1 == (res = sumOfNum(n))){printf("输入的数字不正确\n");return -1;}printf("%d\n", res);readNum(res);return 0;}void readElement(char ch){if (ch > '9' || ch < '0'){printf("参数错误\n");return;}switch (ch){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;default:break;}}void readNum(int n){char strNum[10];memset(strNum, 0, sizeof(strNum));sprintf_s(strNum, sizeof(strNum), "%ld", n);int k = strlen(strNum);for (int j = 0; j < k; j++){readElement(strNum[j]);if (j != k+1){printf(" ");}}printf("\n");}int sumOfNum(long long n){int m = 0;int sum = 0;if (n < 0 || n > pow(10, 100)){printf("输入错误\n");return -1;}while (n != 0){m = n % 10;sum += m;n /= 10;}return sum;}

运行效果图如下:


原创粉丝点击