这道题目比较简单,关键在于解决两点,一点是一个数组元素在数组中重复的次数,因为我们要挑出重复次数最多的;第二点就是输出重复次数最多的那个元素。所以我们分别用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;
}