本题要求统计一个整型序列中出现次数最多的整数及其出现次数。
输入格式:
输入在一行中给出序列中整数个数N(0<N≤1000),以及N个整数。数字间以空格分隔。
输出格式:
在一行中输出出现次数最多的整数及其出现次数,数字间以空格分隔。题目保证这样的数字是唯一的。
输入样例:
10 3 2 -1 5 3 4 3 0 3 2
输出样例:
3 4
代码示例:(本题我采用了定义结构体的方式 ,一家之言~欢迎指正)
#include<stdio.h>
#define MAXN 1000struct count{int number;int amount;
};//定义结构体,包括一个数据项,一个计数项;int main()
{int n,tag=0,max=0;struct count b[MAXN];scanf("%d",&n);for(int i=0;i<n;i++){scanf("%d",&b[i].number);b[i].amount = 0;}//初始化;for(int i=0;i<n;i++){for(int j=0;j<n;j++){if( b[i].number == b[j].number ) b[i].amount++;}}//计算输入数组中每个元素在数组中出现的次数;1.我觉得可以优化,但是目前没想到;for(int i=0;i<n;i++){if(b[i].amount>b[max].amount ) max = i;}//找到数组中出现次数最多的元素和次数,并进行输出;printf("%d %d\n",b[max].number,b[max].amount);
}