zoukankan      html  css  js  c++  java
  • C语言拯救计划Day3-1之求一批整数中出现最多的个位数字

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

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

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

    给定一批整数,分析每个整数的每一位数字,求出现次数最多的个位数字。例如给定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 }
     
  • 相关阅读:
    android 网络
    java 软引用,弱引用,强引用
    android 定时, 延时 任务
    android 不失真 显示 超高清 图片 长图
    android viewHolder static 静态
    工作中怎么解决bug
    chkconfig命令
    chkconfig命令
    chkconfig命令
    linux安装 pip和setuptools
  • 原文地址:https://www.cnblogs.com/noobchen/p/12779503.html
Copyright © 2011-2022 走看看