PAT乙级1002 写出这个数 (20分)

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

输入格式:

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

输出格式:

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

输入样例:

1234567890987654321123456789
 

输出样例:

yi san wu

 

 

参照了书(晴神宝典)上的代码 这类题目当数字过大的时候 就需要将其看成字符串来进行处理 对字符数组进行处理 这题还需要注意二位字符数组的使用。

AC代码:

#include<stdio.h>
int main(){
    char c[200];
    scanf("%s",c);
    int i = 0;
    int sum = 0;
    while(c[i]){
        sum +=(c[i]-'0');
        i++; 
    }
    int ans[10]={};
    int num = 0;
    while(sum){
        ans[num] = sum%10;
        sum /=10;
        num++;
    }
    char change[10][5]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
    for(int t = num-1;t>=0;t--){
        printf("%s",change[ans[t]]);
        if(t!=0){
            printf(" ");
        }
    }
    return 0;
} 

 

posted @ 2020-04-25 15:08  ZJU_LOSER  阅读(136)  评论(0)    收藏  举报