题目:
读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100。
输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。
输入样例: 1234567890987654321123456789 输出样例: yi san wu解决代码:(汪汪) 1 #include <stdio.h> 2 3 int sum_String(int num); 4 5 int main(){ 6 char input_number[100]={0};//假设输入的数字的位数是100位 7 int sum = 0; 8 printf("\nPlease enter a number string (number <10^100)\n "); 9 scanf("%s",input_number);//以字符串的形式 输入要研究的数字 10 int i; 11 for(i=0;i<100;i++) 12 { 13 if(input_number[i]!=0) 14 { 15 if(('0'>input_number[i])||('9'<input_number[i])) 16 { 17 printf("Input Error, the program exit ...\n"); 18 return -1; 19 } 20 sum += input_number[i]-'0'; 21 }//如果输入的位 非数字 则出现异常,中断;否则继续求和 22 else 23 { 24 break; 25 } 26 } 27 28 //假设求出的和不超过三位数 29 printf("Sum = %d\n",sum); 30 printf("pingying Sum: "); 31 if(sum/100!=0) 32 { 33 sum_String(sum/100); 34 printf(" "); 35 // sum_String(sum/100/10); 36 sum_String(sum%100/10); 37 38 printf(" "); 39 sum_String(sum%10); 40 } 41 42 else if(sum/10!=0) 43 { 44 sum_String(sum/10); 45 printf(" "); 46 sum_String(sum%10); 47 } 48 else 49 { 50 sum_String(sum%10); 51 } 52 printf("\n---END---\n"); 53 } 54 55 //将对应的数字用拼音表示 56 int sum_String(int num){ 57 switch (num){ 58 case 1:printf("yi");break; 59 case 2:printf("er");break; 60 case 3:printf("san");break; 61 case 4:printf("si");break; 62 case 5:printf("wu");break; 63 case 6:printf("liu");break; 64 case 7:printf("qi");break; 65 case 8:printf("ba");break; 66 case 9:printf("jiu");break; 67 case 0:printf("ling");break; 68 69 } 70 }注:代码添加功能:
1.在输入非数字时异常退出
测试结果:
*放在测试器 中递交时 可删除部分功能代码:
#include <stdio.h> int sum_String(int num); int main(){ char input_number[100]={0};//假设输入的数字的位数是100位 int sum = 0; //printf("\nPlease enter a number string (number <10^100)\n "); scanf("%s",input_number);//以字符串的形式 输入要研究的数字 int i; for(i=0;i<100;i++) { if(input_number[i]!=0) { if(('0'>input_number[i])||('9'<input_number[i])) { // printf("Input Error, the program exit ...\n"); return -1; } sum += input_number[i]-'0'; }//如果输入的位 非数字 则出现异常,中断;否则继续求和 else { break; } } //假设求出的和不超过三位数 // printf("Sum = %d\n",sum); // printf("pingying Sum: "); if(sum/100!=0) { sum_String(sum/100); printf(" "); // sum_String(sum/100/10); sum_String(sum%100/10); printf(" "); sum_String(sum%10); } else if(sum/10!=0) { sum_String(sum/10); printf(" "); sum_String(sum%10); } else { sum_String(sum%10); } // printf("\n---END---\n"); } //将对应的数字用拼音表示 int sum_String(int num){ switch (num){ 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; case 0:printf("ling");break; } }递交结果:成功!
转载于:https://www.cnblogs.com/Catherinezhilin/p/8879933.html
相关资源:PAT-乙级-1001