美文网首页
PAT-B 1002 写出这个数(C语言)

PAT-B 1002 写出这个数(C语言)

作者: dk_qi | 来源:发表于2018-12-10 20:03 被阅读0次

    题目

    链接:PAT (Basic Level) Practice 1002 写出这个数

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

    输入格式:

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

    输出格式:

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

    输入样例:

    1234567890987654321123456789
    输出样例:
    yi san wu

    思路

    题目说保证 n 小于10^{100},所以这道题应该用字符数组来存放输入内容,且各数字之和小于1000。要求用拼音输出,可以定义一个二维字符数组来存放各数字对应的拼音。

    1. 输入;
    2. 遍历数组求和;
    3. 将各位数字之和用汉语拼音输出。

    代码

    #include<stdio.h>
    #include<string.h>
    int main()
    {
        int sum = 0;
        char n[1000];
        char ita[11] [5]= {"ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"};
        scanf("%s", n);
        //遍历数组求和
        for(int i = 0; i < strlen(n); i++){
            sum += n[i] - '0';
        }
        //sum最多只有三位数
        if(sum / 100)      printf("%s ", ita[sum/100]); 
        if(sum / 10)       printf("%s ", ita[sum%100/10]);
        printf("%s", ita[sum%10]); 
        return 0;
    }
    

    相关文章

      网友评论

          本文标题:PAT-B 1002 写出这个数(C语言)

          本文链接:https://www.haomeiwen.com/subject/vnydhqtx.html