本题要求统计一个整型序列中出现次数最多的整数及其出现次数。
输入格式:
输入在一行中给出序列中整数个数N(0<N<=1000),以及N个整数。数字间以空格分隔。
输出格式:
在一行中输出出现次数最多的整数及其出现次数,数字间以空格分隔。题目保证这样的数字是唯一的。
输入样例:10 3 2 -1 5 3 4 3 0 3 2输出样例:
3 4
#include <stdio.h> #define N 1000 int comp(const void *p, const void *q) { return *(int *)p - *(int *)q; } int main(void) { int a[N + 1]; int i, j, n, count, maxCount, value; scanf("%d", &n); for(i = 0; i < n; ++i) scanf("%d", &a[i]); qsort(a, n, sizeof(int), comp); /* 升序排序 */ maxCount = 0; /* 最大次数 */ value = 0; /* 当前值 */ i = 0; while(i < n) { count = 1; /* 每个元素出现次数 */ for(j = i + 1; j < n && a[i] == a[j]; ++j) ++count; if(count > maxCount) { maxCount = count; value = a[i]; } i = j; /* 不重复查找 */ } printf("%d %d\n", value, maxCount); return 0; }
原文地址:http://blog.csdn.net/jason_wang1989/article/details/43833521