码迷,mamicode.com
首页 > 其他好文 > 详细

1002 写出这个数

时间:2018-03-11 17:11:53      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:数组   case   说明   会计   数字   测试   pre   eof   sys   

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

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

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

输入样例:

1234567890987654321123456789

输出样例:

yi san wu



 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 
 4 int main(void)
 5 {
 6     char a[101] = "", b[101] = "";
 7     int sum = 0, n;
 8     scanf("%s", a);
 9     for (n = 0; n<101; n++)
10     {
11         if (a[n] != \0)
12             sum = sum + a[n] - 48;
13     }
14     sprintf(b, "%d", sum);
15     for (n = 0; n < 101; n++)
16     {
17 
18         if (b[n] == \0)
19         {
20             break;
21         }
22         switch (b[n])
23         {
24         case 0:
25             printf("ling");
26             break;
27         case 1:
28             printf("yi");
29             break;
30         case 2:
31             printf("er");
32             break;
33         case 3:
34             printf("san");
35             break;
36         case 4:
37             printf("si");
38             break;
39         case 5:
40             printf("wu");
41             break;
42         case 6:
43             printf("liu");
44             break;
45         case 7:
46             printf("qi");
47             break;
48         case 8:
49             printf("ba");
50             break;
51         case 9:
52             printf("jiu");
53             break;
54         }
55         if (b[n + 1] != \0)//当下一个字符为‘\0‘时说明到达字符串结尾
56         {
57             printf(" ");
58         }
59     }
60     return 0;
61 }

看一下下面两端代码,理解一下字符串数组和字符串。



 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <string.h>
 4 
 5 /* run this program using the console pauser or add your own getch, system("pause") or input loop */
 6 
 7 int main(int argc, char *argv[]) {
 8     char a[9] = { 1,2,3,4 };
 9     char b[9] = { "1234" };
10     printf("%d   %d   %d   %d\n", sizeof(a), strlen(a), sizeof(b), strlen(b));
11     system("PAUSE");
12     return 0;
13 }
 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <string.h>
 4 
 5 /* run this program using the console pauser or add your own getch, system("pause") or input loop */
 6 
 7 int main(int argc, char *argv[]) {
 8     char a[] = { 1,2,3,4 };
 9     char b[] = { "1234" };
10     printf("%d   %d   %d   %d\n", sizeof(a), strlen(a), sizeof(b), strlen(b));
11     system("PAUSE");
12     return 0;
13 }

第二段程序编译器不同运行结果可能不同,但,sizeof在第二段中会计算b字符串b中最后的‘\0‘,因此会大出一个字节。

1002 写出这个数

标签:数组   case   说明   会计   数字   测试   pre   eof   sys   

原文地址:https://www.cnblogs.com/Mayfly-nymph/p/8544251.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!