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

给定一批整数,分析每个整数的每一位数字,求出现次数最多的个位数字。例如给定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 num[1000];//输入正整数N int n;scanf("%d",&n);//输入N个正整数存入数组Num int i;for(i=0;i<n;i++){scanf("%d",&num[i]);}int count[10]={0};//0-9计数int a,temp,mask ;for(i=0;i<n;i++){temp = num[i];mask = 1;while(temp > 9){temp /= 10;mask *= 10;}while(mask>0){a = num[i] / mask;count[a]++;num[i] %= mask;mask /= 10;}} int max[10],nmax=0;int numOfMax=0;//遍历count[],找出最大值,并且存入max[]max[0] = -1;for(i=0;i<10;i++){if(count[i] > numOfMax){nmax = 0;numOfMax = count[i];max[nmax] = i;}else if(count[i] == numOfMax){nmax++;max[nmax] = i;}} //输出 printf("%d:",numOfMax);for(i=0;i<=nmax;i++){printf(" %d",max[i]);}return 0;}

『 不可能 』只存在於蠢人的字典里

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

相关文章:

你感兴趣的文章:

标签云: