C语言从键盘输入n个数,输出其中出现次数最多的数。当有多个整数有一样多的出现次数时选择值更大的一个。可以使用函数,不使用指针
时间: 2024-11-24 14:40:05 浏览: 19
在C语言中,我们可以使用数组和循环结构来完成这个任务。首先创建一个大小为n+1的数组,用于存储每个数字及其出现次数。然后通过循环读取用户输入,并在数组中相应位置加一。最后遍历数组,找到出现次数最多的数并返回。这里是一个示例代码:
```c
#include <stdio.h>
#include <stdbool.h>
// 函数声明
int find_max_frequency(int numbers[], int n);
int main() {
int n, i;
printf("请输入数字的数量: ");
scanf("%d", &n);
// 初始化频率数组
int frequency[n + 1];
for (i = 0; i <= n; i++) {
frequency[i] = 0;
}
// 读取并计算数字频率
printf("请输入 %d 个数字: ", n);
while (n--) {
int input;
scanf("%d", &input);
frequency[input]++;
}
// 找出出现次数最多的数并输出
int max_freq = 0;
int most_common = -1;
for (i = 0; i <= n; i++) {
if (frequency[i] > max_freq && (most_common == -1 || i > most_common)) {
max_freq = frequency[i];
most_common = i;
}
}
printf("出现次数最多的数(值较大者)是: %d\n", most_common);
return 0;
}
// 函数实现:查找最大频率
int find_max_frequency(int numbers[], int n) {
// 在这里不需要,因为主程序直接在循环中实现了
return 0;
}
```
在这个例子中,`find_max_frequency`函数实际上不是必需的,因为我们可以在主函数中直接找到最大频率。如果你需要将这个过程封装成独立的函数,那么可以像上面那样提供,但在主函数中不需要调用它。
阅读全文