C语言代码:通过点赞记录分析用户特性

问题描述: 给定一个用户的点赞记录,每个记录包含多个特性标签。请统计所有点赞博文中出现次数最多的特性标签,并输出其编号和出现次数。

输入格式: 输入在第一行给出一个正整数N(≤1000),是该用户点赞的博文数量。随后N行,每行给出一篇被其点赞的博文的特性描述,格式为'K F1 ⋯FK',其中1≤K≤10,Fi(i=1,⋯,K)是特性标签的编号,我们将所有特性标签从1到1000编号。数字间以空格分隔。

输出格式: 统计所有被点赞的博文中最常出现的那个特性标签,在一行中输出它的编号和出现次数,数字间隔1个空格。如果有并列,则输出编号最大的那个。

输入样例:

4
3 889 233 2
5 100 3 233 2 73
4 3 73 889 2
2 233 123

输出样例:

233 3

C语言代码:

#include <stdio.h>
#include <stdlib.h>

int main() {
    int N, K, F, i, j, max_count = 0, max_label = 0;
    int *counts = (int *)calloc(1001, sizeof(int)); // 统计每个标签出现的次数

    scanf('%d', &N);

    for (i = 0; i < N; i++) {
        scanf('%d', &K);
        for (j = 0; j < K; j++) {
            scanf('%d', &F);
            counts[F]++; // 统计标签出现的次数
        }
    }

    for (i = 1; i <= 1000; i++) {
        if (counts[i] > max_count) {
            max_count = counts[i];
            max_label = i;
        }
    }

    printf('%d %d
', max_label, max_count);

    free(counts);
    return 0;
}

代码解释:

  1. 使用 calloc 函数分配一个大小为 1001 的整数数组 counts,用于存储每个标签出现的次数。
  2. 循环读取输入的每个点赞记录,并统计每个标签出现的次数。
  3. 再次循环遍历 counts 数组,找出出现次数最多的标签及其出现次数。
  4. 输出结果,并释放 counts 数组所占用的内存空间。

注意:

  • 代码中假设特性标签的编号在 1 到 1000 之间。
  • 代码使用 calloc 函数分配内存,并使用 free 函数释放内存,避免内存泄漏。
  • 代码可根据实际情况进行修改和完善。
C语言代码:通过点赞记录分析用户特性

原文地址: https://www.cveoy.top/t/topic/oSbC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录