L1-034 点赞

#include<stdio.h>

int main() {
    int m[1000] = {0}, a, b, c, d, e = 999, N, n;  // 定义变量和数组
    // m[1000]:用于统计每个数字出现的次数,初始化为0
    // a, b, c, d, e:循环变量和临时变量
    // N:输入的测试用例数量
    // n:每个测试用例中的数字数量
    // e:初始化为999,用于记录出现次数最多的数字的索引

    scanf("%d", &N);  // 输入测试用例的数量N

    for (a = 0; a < N; a++) {  // 遍历每个测试用例
        scanf("%d", &n);  // 输入当前测试用例中的数字数量n

        for (b = 0; b < n; b++) {  // 遍历当前测试用例中的每个数字
            scanf("%d", &c);  // 输入当前数字c
            m[c - 1]++;  // 将数字c对应的计数加1(数组下标从0开始,所以是c-1)
        }
    }

    for (d = 999; d > 0; d--)  // 从后向前遍历数组m,找到出现次数最多的数字
        if (m[e] < m[d - 1])  // 如果当前数字的出现次数大于已知的最大次数
            e = d - 1;  // 更新e为当前数字的索引

    printf("%d %d", e + 1, m[e]);  // 输出结果:出现次数最多的数字(e+1)及其出现次数(m[e])
    return 0;  // 程序正常结束
}

注意:题目要求如果有并列,输出编号最大的,所以从后向前遍历。

全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务