
//实验7-1-6 求一批整数中出现最多的个位数字
#include<stdio.h>
int main(){
int n;
int a[1000];
//输入 n以及n个非负整数
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
//计算 统计每个数字数显的次数
int d[10]={0};//数字0-9出现的次数
for(int i=0;i<n;i++){
//统计a[i]各位出现的次数
do{//使用do-while保证至少循环一次(统一处理包括a[i]==0的情况)
int digit= a[i] %10;//取个位数字
d[digit]++;//计数
a[i]/=10;//缩小十倍,(抹去个位数字)
/*
有一个潜在的内容,例如987,一开始的个位数字是7(987%10取余得到7),那么d[7]++;
求十位8的时候,就是987/10=98.7 ,int一下变成98,可以继续进行%10取余得到98.7的个位数字是8,那么d[8]++
*/
}while(a[i]!=0);
}
//计算 最多的出现次数;
int max=d[0];
for(int i=1;i<10;i++){
if(d[i]>max)
max=d[i];
}
//输出 最多出现的次数
printf("%d:",max);
//输出 出现次数最多的数字
for(int i=0;i<10;i++){
if(d[i]==max)
printf("%d ",i);
}
return 0;
}
