这道题目比较简单,关键在于解决两点,一点是一个数组元素在数组中重复的次数,因为我们要挑出重复次数最多的;第二点就是输出重复次数最多的那个元素。所以我们分别用3个变量去表示数组遍历过程中需要记录和比较的量:重复次数,最多重复次数,最多重复次数对应的元素。初值为0,遍历过程中每次加1,然后进行一次比较,把最多的进行赋值。
#include <stdio.h>
int main()
{
int n;
scanf("%d\n",&n);
int a[n];
for(int i=0;i<n;i++) scanf("%d ",&a[i]);
int maxCount = 0; // 出现次数最多的元素出现的次数,初值设为0
int mostFrequent = a[0]; // 出现次数最多的元素的值,初值设为a[0]
for (int i = 0; i < n; i++) {
int count = 0; // 当前元素出现的次数
for (int j = 0; j < n; j++) {
if (a[i] == a[j]) {
count++;//每有一个相同的就加1
}
}
if (count > maxCount) {
maxCount = count;
mostFrequent = a[i];
}//如果找到一个元素重复次数比前一个要大,那么就把新值赋给它。
}
printf("%d",mostFrequent);//最终输出
return 0;
}