给定一个整数序列,确定这个序列中出现次数最多的整数和它出现的次数

题目描述

      对于给定一个整数序列,你的任务是确定这个序列中出现次数最多的整数和它出现的次数。

输入

输入包含多组测试数据,每组数据的第一行为一个整数 N(0 < N <= 1000),接下来一行为 个以空格分隔的整数 Ai|Ai| < 2^31

输出

对于每组测试数据,输出只有一行为两个空格分隔的整数AB,分别代表出现次数最多的那个数和出现次数,如果出现次数最多的有多个,输出数值最小的那个。

示例输入

4
1 2 3 3
5
1 2 3 4 5

示例输出

3 2
1 1

 

 1 #include<stdio.h>
 2 struct vode
 3 {
 4     int date;
 5     int cs;
 6 }f[10000],t;
 7 int main()
 8 {
 9     int i,n,j;
10     while(~scanf("%d",&n))
11     {
12         for(i=1;i<=10000;i++)
13         f[i].cs=0;
14     for(i=1;i<=n;i++)
15     scanf("%d",&f[i].date);
16     for(i=n;i>=1;i--)
17     {
18         for(j=1;j<=i;j++)
19             if(f[i].date==f[j].date)
20             f[j].cs++;
21     }
22     for(i=1;i<=n-2;i++)
23         for(j=i+1;j<=n-1;j++)
24         if(f[i].date>f[j].date)
25     {
26         t=f[i];
27         f[i]=f[j];
28         f[j]=t;
29     }
30     for(i=1;i<=n-2;i++)
31         for(j=i+1;j<=n-1;j++)
32         if(f[i].cs<f[j].cs)
33     {
34         t=f[i];
35         f[i]=f[j];
36         f[j]=t;
37     }
38     printf("%d %d
",f[1].date,f[1].cs);
39     }
40 }
View Code
原文地址:https://www.cnblogs.com/kuangdaoyizhimei/p/3228067.html