可以使用一个长度为1000的数组count来记录每个数字出现的次数。遍历给定的数字序列,对于每个数字n,将count[n]加1。最后再遍历一次count数组,找出出现次数最高的数字。以下是实现的代码:
#include <stdio.h>
int main() {
int count[1001] = {0}; // 数组初始化为0
int num, maxCount = 0, maxNum = 0;
// 输入数字序列,并统计每个数字出现的次数
while (scanf("%d", &num) != EOF) {
count[num]++;
}
// 找出出现次数最高的数字
for (int i = 1; i <= 1000; i++) {
if (count[i] > maxCount) {
maxCount = count[i];
maxNum = i;
}
}
printf("出现次数最高的数字是:%d,出现次数:%d\n", maxNum, maxCount);
return 0;
}
这段代码的时间复杂度为O(n),其中n为输入数字序列的长度。