给定一批整数,分析每个整数的每一位数字,求出现次数最多的个位数字。例如给定3个整数1234、2345、3456,其中出现最多次数的数字是3和4,均出现了3次。
输入格式:
输入在第1行中给出正整数N(≤1000),在第二行中给出N个不超过整型范围的非负整数,数字间以空格分隔。
输出格式:
在一行中按格式“M: n1 n2 ...”输出,其中M是最大次数,n1、n2、……为出现次数最多的个位数字,按从小到大的顺序排列。数字间以空格分隔,但末尾不得有多余空格。
输入样例:
复制代码
1
23 1234 2345 3456
输出样例:
复制代码
13: 3 4
代码实现:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73#include<stdio.h> int main() { int arr[1000], n,i,ret; int arr1[10] = { 0 }; scanf("%d", &n); for (i = 0;i < n;i++) { scanf("%d", &arr[i]); } for (i = 0;i < n;i++) { if (arr[i] == 0)//若数为0,特殊讨论 arr1[0]++; while (arr[i] != 0) { ret = arr[i] % 10; arr[i] = arr[i] / 10; switch (ret) { case 0: arr1[0]++; break; case 1: arr1[1]++; break; case 2: arr1[2]++; break; case 3: arr1[3]++; break; case 4: arr1[4]++; break; case 5: arr1[5]++; break; case 6: arr1[6]++; break; case 7: arr1[7]++; break; case 8: arr1[8]++; break; case 9: arr1[9]++; break; } } } int max = arr1[0]; //找出出现次数最大 for (i = 0;i < 10;i++) { if (arr1[i]>max) { max = arr1[i]; } } printf("%d:", max); //找出出现次数最大的数字 for (i = 0;i < 10;i++) { if (arr1[i] == max) { printf(" %d", i); } } return 0; }
最后
以上就是昏睡火车最近收集整理的关于习题7-2 求一批整数中出现最多的个位数字的全部内容,更多相关习题7-2内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复