1002. 写出这个数 (20)

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

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

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

输入样例:

1234567890987654321123456789

输出样例:

yi san wu

思路:
简单模拟题,注意细节即可

 1 #include<stdio.h>
 2 #include<string.h>
 3 #define MAX 100000
 4 int main()
 5 {
 6     char numArr[MAX];
 7 //    gets(numArr);//gets(stringName)默认读到字符串换行才结束读取 
 8     scanf("%s",numArr);//此方法读取字符数组,默认遇到空格表示结束 
 9 //    puts(numArr);
10     int length = strlen(numArr);
11 //    printf("%d
",length);
12     int num = 0;
13     for(int i=0;i<length;i++)
14     {
15         num+=(numArr[i]-'0');//char类型减去一个'0'转换为int 类型 
16     }
17     int arr[MAX];
18 //        printf("%d
",num);
19     int tmp = num;
20     int cnt = 0;
21     while(tmp)
22     {
23         arr[cnt++] = tmp%10;
24         tmp/=10;
25     }
26     for(int i=cnt-1; i>=0; i--)
27     {
28         if(arr[i] == 0)
29             printf("ling");
30         else if(arr[i] == 1)
31             printf("yi");
32         else if(arr[i] == 2)
33             printf("er");
34         else if(arr[i] == 3)
35             printf("san");
36         else if(arr[i] == 4)
37             printf("si");
38         else if(arr[i] == 5)
39             printf("wu");
40         else if(arr[i] == 6)
41             printf("liu");
42         else if(arr[i] == 7)
43             printf("qi");
44         else if(arr[i] == 8)
45             printf("ba");
46         else if(arr[i] == 9)
47             printf("jiu");    
48         if(i)
49             printf(" ");
50     }
51     return 0;
52 }
原文地址:https://www.cnblogs.com/valar/p/6142562.html