• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C语言拯救计划Day3-1之求一批整数中出现最多的个位数字

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

//丧气的一天也要坚持啊啊啊啊!

//拜托了,日子不管会不会变好,你也要变好哇

//遥远的你,最近过得还好嘛,好久不联系了诶

 

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

输入格式:

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

输出格式:

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

输入样例:

3
1234 2345 3456
 

输出样例:

3: 3 4



 1 #include<stdio.h>
 2 #include<stdio.h>
 3 #define N 1000
 4 #define NUM 10
 5 /*
 6 思路:
 7 1.拆分每个整数,利用一个10个元素的数组统计每个数字出现的次数
 8 2.找出出现次数最多的并输出次数
 9 3.利用十个元素的数组下标与分解的数字一一对应,输出出现次数最多的代表的数字
10 */
11 int main()
12 {
13     int i, n;
14     int a[N];
15     int b[NUM] = {0}; ///巧妙的利用十个元素的数组,下标和数字恰好对应
16     int t = -1;
17     int max = -1;
18     scanf("%d", &n);
19     for (i = 0; i < n; i++)
20     {
21         scanf("%d", &a[i]);
22     }
23     for (i = 0; i < n; i++)
24     {
25          do  //注意,这里一定要考虑整数是0的情况
26         {
27             t = a[i] % 10;
28             b[t]++;
29             a[i] = a[i] / 10;
30         }while (a[i] != 0);
31     }
32     ///找出出现的最多次数是多少
33     for (i = 0; i < NUM; i++)
34     {
35         if (b[i] > max)
36         {
37             max = b[i];
38         }
39     }
40     printf("%d:", max);///输出最多次数
41     for (i = 0; i < NUM; i++)
42     {
43         if (max == b[i])///如果相等,则说明i代表的这个数字就是出现次数最多的数字
44         {
45             printf(" %d", i); ///打印i
46         }
47     }
48     return 0;
49 }

 

 

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
头文件.h的应用以及fortran和c的混合编程发布时间:2022-07-13
下一篇:
C#基础知识总结(一)发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap