解答:
#include<stdio.h>
int main(){
int n,i,j,l,k,m;
scanf("%d",&n);
int a[10]={0},num;
for(i=0;i<n;i++){
scanf("%d",&m);
do{
num=m;
m=m/10;
switch(num){
case 0:a[0]++;break;
case 1:a[1]++;break;
case 2:a[2]++;break;
case 3:a[3]++;break;
case 4:a[4]++;break;
case 5:a[5]++;break;
case 6:a[6]++;break;
case 7:a[7]++;break;
case 8:a[8]++;break;
case 9:a[9]++;break;
}
}while(m!=0);
}
int max=0;
for(i=0;i<10;i++){
if(max<a[i])
max=a[i];
}
printf("%d:",max);
for(i=0;i<10;i++){
if(a[i]==max)
printf(" %d",i);
}
}
最后才发现需要用do while才能将0写进代码里
代码不够简洁,望大佬批评指正。