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

来源:互联网 发布:mysql书籍推荐 知乎 编辑:程序博客网 时间:2024/04/30 05:55
    题目:给定一批整数,分析每个整数的每一位数字,求出现次数最多的个位数字。例如给定3个整数1234、2345、3456,其中出现最多次数的数字是3和4,均出现了3次。
    输入格式:输入在第1行中给出正整数N(<=1000),在第2行中给出N个不超过整型范围的正整数,数字间以空格分隔。
    输出格式:在一行中按格式“M: n1 n2 ...”输出,其中M是最大次数,n1、n2、……为出现次数最多的个位数字,按从小到大的顺序排列。数字间以空格分隔,但末尾不得有多余空格。


输入样例:

3

1234 2345 3456

输出样例:

3: 3 4

#include <stdio.h>int main(){int n;                     //输入整数的个数N int i,x,y;                 //声明一些变量用于临时存放相关数据 int a[10];                 //声明一个数组用于存放数字出现的次数 for(i=0;i<10;i++)         //初始化数组   a[i]=0;                scanf("%d",&n);for(i=0;i<n;i++)          {scanf("%d",&y);while(y)              //循环用于获得每个数字出现的次数 {                    x=y%10;         // X为每次获得的个位数字 a[x]++;        // a[x]表示x出现的次数 y=y/10;       //每次循环Y除10,直到y=0退出循环 }}x=0;for(i=0;i<10;i++)          //通过循环找出a[i]中的最大值 {if(a[i]>x)             {x=a[i];           //x存放a[i]中的最大值 y=i;             //y存放第一个出现次数等于最大值的数 }}printf("%d: %d",x,y);     //以规定格式打印最大值和第一个数 for(i=y+1;i<10;i++)       {if(a[i]==x)           //打印出其它出现次数等于最大值的数 printf(" %d",i);}return 0;}


0 0
原创粉丝点击