在线编译器 C

#include <stdio.h> int main() { int arr[10]; // 1. 读取 10 个通过空格分隔的整数 for (int i = 0; i < 10; i++) { scanf("%d", &arr[i]); } int most_frequent = arr[0]; // 记录出现次数最多的数字 int max_count = 0; // 记录最高的出现次数 // 2. 双重循环统计每个数字出现的次数并找出最大值 for (int i = 0; i < 10; i++) { int current_count = 0; for (int j = 0; j < 10; j++) { if (arr[j] == arr[i]) { current_count++; } } // 如果当前数字的出现次数比之前记录的最大次数还大,则更新记录 if (current_count > max_count) { max_count = current_count; most_frequent = arr[i]; } } // 3. 打印输出结果并换行 printf("%d\n", most_frequent); return 0; }
这段代码的功能是:读取10个整数,然后找出其中出现次数最多的数字,并输出该数字。

代码使用了两层循环来统计每个数字的出现次数。外层循环遍历每个数字,内层循环统计该数字在整个数组中出现的次数,然后比较并记录出现次数最多的数字。

- 注意代码中 `max_count` 初始化为0。如果所有数字都只出现一次,那么第一个数字 `arr[0]` 的 `current_count` 会是1,大于0,所以 `most_frequent` 会被正确设置为 `arr[0]`。但这里有一个潜在问题:当有多个数字出现次数相同且都是最高次数时,代码只会记录第一个遇到的数字,这可能是符合题目要求的,也可能不是,需要根据题目具体需求判断。

- 另外,代码没有处理输入可能包含非数字字符的情况,但题目没有要求,所以可以忽略。