CSP201312-1:出现次数最多的数

2018-06-17 21:18:43来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

引言:CSP(http://www.cspro.org/lead/application/ccf/login.jsp是由中国计算机学会(CCF)发起的“计算机职业资格认证”考试,针对计算机软件开发、软件测试、信息管理等领域的专业人士进行能力认证。认证对象是从事或将要从事IT领域专业技术与技术管理人员,以及高校招考研究生的复试对象。

 

问题描述

  给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。

输入格式

  输入的第一行只有一个正整数n(1 ≤ n ≤ 1000),表示数字的个数。

  输入的第二行有n个整数s1, s2, …, sn (1 ≤ si ≤ 10000, 1 ≤ i ≤ n)。相邻的数用空格分隔。

输出格式

  输出这n个次数中出现次数最多的数。如果这样的数有多个,输出其中最小的一个。

样例输入

6

10 1 10 20 30 20

样例输出

10

 

源代码

# include <stdio.h>

# include <stdlib.h>

# include <memory.h>

 

struct storage{

    int key; 

    int value;

};

 

int main(void)

{

    int n;  //个数

    int time = 0;

    int flag = 1;

    scanf("%d", &n);

   

    int *input = (int *)malloc(sizeof(int)*n);

    memset(input, 0, sizeof(int)*n);

    struct storage *handle = (struct storage *)malloc(sizeof(struct storage)*n);

    memset(handle, 0, sizeof(struct storage)*n);

   

    int i, j;

    for (i = 0; i < n; i++)

    {

         scanf("%d", input+i);

    }

   

    for (i = 0; i < n; i++)

    {

         for (j = 0; j < time; j++)

         {

             if (input[i] == handle[j].key)

             {

                  handle[j].value += 1;

                  flag = 0;

                  break;

             }

         }

         if (flag)

         {

             handle[time].key = input[i];

             handle[time].value = 1;

             time += 1;

         }

         flag = 1;

    }

   

    int max = 0;

    int result = 0;

    for (i = 0; i < time; i++)

    {

         if (handle[i].value > max)

         {

             max = handle[i].value;

             result = handle[i].key;

         }  

         if (handle[i].value == max)

         {

             if (result > handle[i].key)

             {

                  max = handle[i].value;

                  result = handle[i].key;

             }

         }

    }

    free(input);

    free(handle);

   

    printf("%d\n", result);

   

    return 0;

}

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:CDQZ 0003:jubeeeeeat

下一篇:51Nod - 1057 -- N的阶乘(大整数乘法)