在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
//丧气的一天也要坚持啊啊啊啊! //拜托了,日子不管会不会变好,你也要变好哇 //遥远的你,最近过得还好嘛,好久不联系了诶
给定一批整数,分析每个整数的每一位数字,求出现次数最多的个位数字。例如给定3个整数1234、2345、3456,其中出现最多次数的数字是3和4,均出现了3次。 输入格式:输入在第1行中给出正整数N(≤),在第二行中给出N个不超过整型范围的非负整数,数字间以空格分隔。 输出格式:在一行中按格式“M: n1 n2 ...”输出,其中M是最大次数,n1、n2、……为出现次数最多的个位数字,按从小到大的顺序排列。数字间以空格分隔,但末尾不得有多余空格。 输入样例:
输出样例:
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 }
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论