PTA basic 1002 写出这个数 (20 分) C语言实现(gcc)

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

输入格式:

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

输出格式:

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

输入样例:

1234567890987654321123456789
 

输出样例:

yi san wu

解题思路
1.因为超出了int和long的表示范围,使用字符串接收输入
2.按输入顺序读取字符,转为数字后求和
3.对上一步求得的 和 循环取余取到每一位数字后按倒序输出取到的数字对应的拼音(可用堆栈,这里使用循环)
 1 #include "stdio.h"
 2 #include "stdlib.h"
 3 #include "string.h"
 4 int main(){
 5    int sum=0,temp=0,i=0,tempA[10];
 6     char c[100];
 7     char arr[][10]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
 8     scanf("%s",c);
 9         for(;i<strlen(c);i++){
10         temp=c[i];
11         temp=temp-'0';
12         sum+=temp;
13     }
14     i=0;
15     while(sum!=0){
16         tempA[i++]=sum%10;
17         sum/=10;
18     }
19     i--;
20     for(;i>=0;){
21         if(i==0){
22            printf("%s\n",arr[tempA[i--]]);
23         }else{
24             printf("%s ",arr[tempA[i--]]);
25         }
26     }
27 return 0;
28 }

 

 
posted @ 2021-04-17 20:28  keiiha  阅读(96)  评论(0编辑  收藏  举报