本题要求统计一个整型序列中出现次数最多的整数及其出现次数。
输入格式:
输入在一行中给出序列中整数个数 N(0< N ≤1000),以及 N 个整数。数字间以空格分隔。
输出格式:
在一行中输出出现次数最多的整数及其出现次数,数字间以空格分隔。题目保证这样的数字是唯一的。
输入样例:
10 3 2 -1 5 3 4 3 0 3 2
输出样例:
3 4
来源:
来源:PTA | 程序设计类实验辅助教学平台
链接:https://pintia.cn/problem-sets/13/exam/problems/508
提交:
题解:
#include<stdio.h>
int main(void) {
int N;
scanf("%d", &N);
int numbers[1000];
for (int i = 0; i < N; i++) {
scanf("%d", &numbers[i]);
}
int num = numbers[0];
int count = 1;
for (int i = 0; i < N; i++) {
// 当前数字的出现次数
int curCount = 1;
// 遍历剩下的 N-i-1 个数字,若和当前数字相同,则当前数字出现次数增 1
for (int j = i + 1; j < N; j++) {
if (numbers[i] == numbers[j]) {
curCount++;
}
}
// 新数字的出现次数更多
if (curCount > count) {
count = curCount;
num = numbers[i];
}
}
printf("%d %d", num, count);
return 0;
}