C语言众数完整程序,别用结构体和指针,还没教
时间: 2024-10-16 17:22:34 浏览: 33
好的,为了完成一个简单的C语言众数查找,我们不需要使用结构体和指针。我们可以用一个数组来记录每个数值及其出现的次数。下面是一个基本的C语言程序,用于找出给定整数数组中的众数:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100
void find_mode(int arr[], int n) {
int counts[MAX_SIZE] = {0}; // 初始化计数器数组
int mode = 0; // 初始化模式为0
int max_count = 0; // 初始化最大计数为0
// 计算每个数字出现的次数
for (int i = 0; i < n; ++i) {
counts[arr[i]]++; // 每次遇到一个新值就加一
}
// 找出出现次数最多且超过一次的数
for (int i = 0; i < MAX_SIZE; ++i) {
if (counts[i] > max_count && counts[i] > 1) {
max_count = counts[i];
mode = i;
}
}
printf("众数是: %d\n", mode);
}
int main() {
int num;
printf("请输入数组元素个数(不超过100个):");
scanf("%d", &num);
if (num > MAX_SIZE) {
printf("错误:输入的数量超过了数组的最大容量。\n");
return 1;
}
int arr[num];
printf("请输入数组元素:\n");
for (int i = 0; i < num; ++i) {
scanf("%d", &arr[i]);
}
find_mode(arr, num);
return 0;
}
```
在这个程序中,我们首先从用户那里获取数组的长度和元素,然后遍历整个数组,统计每个值出现的次数。接着再次遍历计数器数组,找到出现次数最多的值即为众数。注意,这个程序假设数组内所有值都在0到MAX_SIZE-1的范围内。
阅读全文