1002 写出这个数 (20 分)

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

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

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

输入样例:
1234567890987654321123456789
输出样例:
yi san wu
题解:
在解题的时候是0,1,2,3,4,5,6,7,8,9共10个数字。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
    char a[110000];
    int c[1100];
    int i,l,b,s,j;
    s=0;
    scanf("%s",a);
    l=strlen(a);
    for(i=0; i<l; i++)
    {
        b=a[i]-'0';
        s=s+b;

    }
    j=0;
    if(s==0)printf("ling\n");
    else
    {
        while(s)
        {
            c[j++]=s%10;
            s=s/10;

        }
        for(i=j-1; i>0; i--)
        {
            if(c[i]==0)printf("ling ");
            if(c[i]==1)printf("yi ");
            else if(c[i]==2)printf("er ");
            else if(c[i]==3)printf("san ");
            else if(c[i]==4)printf("si ");
            else if(c[i]==5)printf("wu ");
            else if(c[i]==6)printf("liu ");
            else if(c[i]==7)printf("qi ");
            else if(c[i]==8)printf("ba ");
            else if(c[i]==9)printf("jiu ");

        }
        if(c[0]==0)printf("ling\n");
        if(c[0]==1)printf("yi\n");
        else if(c[0]==2)printf("er\n");
        else if(c[0]==3)printf("san\n");
        else if(c[0]==4)printf("si\n");
        else if(c[0]==5)printf("wu\n");
        else if(c[0]==6)printf("liu\n");
        else if(c[0]==7)printf("qi\n");
        else if(c[0]==8)printf("ba\n");
        else if(c[0]==9)printf("jiu\n");

    }

    return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_43886377/article/details/88929137