3个数组的中位值平均滤波算法C代码
时间: 2024-02-28 17:54:07 浏览: 53
以下是一个基于数组的3个数组的中位值平均滤波算法的C代码:
```c
#include <stdio.h>
#define ARRAY_SIZE 3 // 数组的大小
int main() {
int arr[ARRAY_SIZE][ARRAY_SIZE];
int temp[ARRAY_SIZE];
int i, j, k, median;
// 读取输入数据
for (i = 0; i < ARRAY_SIZE; i++) {
printf("请输入第%d个数组:\n", i + 1);
for (j = 0; j < ARRAY_SIZE; j++) {
printf("请输入第%d个数:", j + 1);
scanf("%d", &arr[i][j]);
}
}
// 中位值平均滤波
for (i = 0; i < ARRAY_SIZE; i++) {
// 取出第i个数组的数据
for (j = 0; j < ARRAY_SIZE; j++) {
temp[j] = arr[i][j];
}
// 排序
for (j = 0; j < ARRAY_SIZE - 1; j++) {
for (k = 0; k < ARRAY_SIZE - j - 1; k++) {
if (temp[k] > temp[k+1]) {
int t = temp[k];
temp[k] = temp[k+1];
temp[k+1] = t;
}
}
}
// 取中位数
median = temp[ARRAY_SIZE / 2];
// 输出结果
printf("第%d个数组的中位数为:%d\n", i + 1, median);
}
return 0;
}
```
该算法的思路是:读入3个数组,对每个数组进行中位值平均滤波。对于每个数组,取出其中的数据,进行排序,然后取中间值作为中位数。这个算法也可以用于更多个数组的中位值平均滤波,只需要将数组长度和排序部分的代码进行相应修改即可。
阅读全文