习题7-2 求一批整数中出现最多的个位数字

给定一批整数,分析每个整数的每一位数字,求出现次数最多的个位数字。例如给定3个整数1234、2345、3456,其中出现最多次数的数字是3和4,均出现了3次。

输入格式:

输入在第1行中给出正整数N(≤),在第二行中给出N个不超过整型范围的非负整数,数字间以空格分隔。

输出格式:

在一行中按格式“M: n1 n2 ...”输出,其中M是最大次数,n1、n2、……为出现次数最多的个位数字,按从小到大的顺序排列。数字间以空格分隔,但末尾不得有多余空格。

输入样例:

3
1234 2345 3456
 

输出样例:

3: 3 4


 1 #include<stdio.h>
 2 
 3 int main(){
 4     char ch;
 5     int n;
 6     scanf("%d",&n);
 7     getchar();
 8     int num[10]={0};
 9     while((ch=getchar())!='\n')
10     {
11         switch(ch)
12         {
13             case'0':
14                 num[0]++;
15                 break;
16             case'1':
17                 num[1]++;
18                 break;
19             case'2':
20                 num[2]++;
21                 break;
22             case'3':
23                 num[3]++;
24                 break;
25             case'4':
26                 num[4]++;
27                 break;
28             case'5':
29                 num[5]++;
30                 break;
31             case'6':
32                 num[6]++;
33                 break;
34             case'7':
35                 num[7]++;
36                 break;
37             case'8':
38                 num[8]++;
39                 break;
40             case'9':
41                 num[9]++;
42                 break;
43         }
44     }
45     int max=num[0];
46     int i;
47     for(i=1;i<10;i++)
48     {
49         max=max>num[i]?max:num[i];
50     }
51     printf("%d:",max);
52     for(i=0;i<10;i++)
53     {
54         if(num[i]==max)
55             printf(" %d",i);
56     }
57     return 0;
58 }

 

posted @ 2021-03-26 22:35  醉月8848  阅读(283)  评论(0)    收藏  举报