求一批整数中出现最多的个位数字

来源:互联网 发布:美白水知乎 编辑:程序博客网 时间:2024/03/29 14:43

08-1. 求一批整数中出现最多的个位数字(20)

时间限制
400 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
徐镜春(浙江大学)

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

输入格式:

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

输出格式:

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

输入样例:
31234 2345 3456
输出样例:
3: 3 4

#include<stdio.h>int main(){int n;while(scanf("%d",&n)!=EOF){int a[10]={0};int i;char s;scanf("%c",&s);//定义s只是实现换行char m;while(m!='\n'){scanf("%c",&m);if(m=='0')a[0]=a[0]+1;if(m=='1')a[1]=a[1]+1;if(m=='2')a[2]=a[2]+1;    if(m=='3')a[3]=a[3]+1;if(m=='4')a[4]=a[4]+1;if(m=='5')a[5]=a[5]+1;if(m=='6')a[6]=a[6]+1;if(m=='7')a[7]=a[7]+1;if(m=='8')a[8]=a[8]+1;if(m=='9')a[9]=a[9]+1;}int MAX=0;for(i=0;i<10;i++){if(MAX<a[i])MAX=a[i];}printf("%d: ",MAX);//找出最大次数int b[1000];int j=0,x=0;for(i=0;i<10;i++){if(a[i]==MAX){b[j]=i;j++;x++;//找出数}}for(j=0;j<x;j++){if(j!=x-1){printf("%d ",b[j]);}elseprintf("%d\n",b[j]);}}return 0;}

0 0
原创粉丝点击