用c语言的循环结构从随机产生4000个整数,按照从小到大进行输出,求其最大值、最小值、中值;
时间: 2024-11-04 14:10:24 浏览: 16
lvbo.rar_lvbo_mean filter_最大 中值 滤波_最小值滤波_随机噪声滤波
在C语言中,你可以使用for循环结合随机数生成函数rand()以及数组来实现这个任务。首先,你需要包含必要的头文件`<stdlib.h>`和`<time.h>`来获取随机数以及设置时间种子,以保证每次程序运行结果都不一样。以下是完整的示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int arr[4000], i;
srand(time(0)); // 设置随机数种子
// 首先填充数组
for (i = 0; i < 4000; i++) {
arr[i] = rand() % 10000; // 随机数范围在0到9999之间
}
// 输出数组并找到最大值、最小值和中值
printf("原始数组:\n");
for (i = 0; i < 4000; i++) {
printf("%d ", arr[i]);
}
printf("\n");
// 找最大值和最小值
int max_val = arr[0];
int min_val = arr[0];
for (i = 1; i < 4000; i++) {
if (arr[i] > max_val) {
max_val = arr[i];
} else if (arr[i] < min_val) {
min_val = arr[i];
}
}
// 计算中位数(这里假设数组长度是偶数)
int mid_index = 2000;
int median;
if (i % 2 == 0) { // 如果元素个数是偶数
median = (arr[mid_index - 1] + arr[mid_index]) / 2;
} else { // 如果元素个数是奇数
median = arr[mid_index];
}
printf("最大值: %d\n", max_val);
printf("最小值: %d\n", min_val);
printf("中位数: %d\n", median);
return 0;
}
```
阅读全文