欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

1002 写出这个数

程序员文章站 2022-11-21 17:47:14
读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 1。 输出格式: 在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。 输入样例: 输出 ......

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

输入格式:

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

输出格式:

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

输入样例:

1234567890987654321123456789

输出样例:

yi san wu
 1 #include<stdio.h>
 2 #include<math.h>
 3 #include<string.h>
 4 #include<stdlib.h>
 5 int main()
 6 {
 7 
 8     int i,sum=0,sumnum;
 9     int num[100];
10     char length[100];
11     scanf("%s",length);
12     sumnum=strlen(length);
13     for(i=0;i<sumnum;i++)
14     {
15     num[i]=length[i]-'0';
16     sum=sum+num[i];
17     }
18     //此时sum为每一位数字的和
19     
20     int num1[100];//定义一个数组储存sum每一位sum的数
21     i=0;//数组中i从0开始存个位 
22     while(sum>0)
23     {
24         num1[i]=sum%10;
25         sum=sum/10;
26         i++;//i增加一位,数组存前一位 
27      } //i也表示sum的位数 
28     //此时要将数组中数字转化为拼音输出 
29     
30         for(i=i-1;i>=1;i--)//从num[i-1]开始输出头一位,到十位上的数
31         {
32           if(num1[i]==0)
33         printf("ling ");
34          else if(num1[i]==1)
35             printf("yi ");
36          else if(num1[i]==2)
37             printf("er ");
38          else if(num1[i]==3)
39             printf("san ");
40          else if(num1[i]==4)
41             printf("si ");
42          else if(num1[i]==5)
43             printf("wu ");
44          else if(num1[i]==6)
45             printf("liu ");
46          else if(num1[i]==7)
47             printf("qi ");
48          else if(num1[i]==8)
49             printf("ba ");
50          else 
51             printf("jiu ");
52         } 
53            if(num1[0]==0)//个位上的数单独输出
54         printf("ling");
55           else if(num1[0]==1) 
56             printf("yi");
57           else if(num1[0]==2)
58             printf("er");
59           else if(num1[0]==3)
60             printf("san");
61           else if(num1[0]==4)
62             printf("si");
63           else if(num1[0]==5)
64             printf("wu");
65           else if(num1[0]==6)
66             printf("liu");
67           else if(num1[0]==7)
68             printf("qi");
69           else if(num1[0]==8)
70            printf("ba");
71           else 
72            printf("jiu");
73     return 0;
74 }