用c语言写一段滑动检测窗口得到平均值的代码
时间: 2024-09-10 22:02:33 浏览: 63
有效值计算 c语言
在C语言中,我们可以编写一段简单的代码来实现滑动窗口计算平均值的功能。这里假设我们有一个整数数组`arr[]`和两个变量`window_size`表示窗口大小以及`sum`用于累加元素值。以下是一个基本示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 滑动窗口函数
double sliding_window_average(int arr[], int window_size, int n) {
double sum = 0;
int start = 0;
// 遍历数组,每次移动窗口开始位置
for (int i = 0; i <= n - window_size; i++) {
// 累加窗口内元素
for (int j = 0; j < window_size; j++) {
sum += arr[i + j];
}
// 移除窗口左侧的第一个元素,添加右侧的新元素
if (i != start) {
sum -= arr[start];
}
start++;
// 计算并返回当前窗口的平均值
double avg = (double) sum / window_size;
printf("Average of window at index %d is %.2f\n", i, avg);
}
return 0;
}
int main() {
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int window_size = 3;
int n = sizeof(arr) / sizeof(arr[0]);
sliding_window_average(arr, window_size, n);
return 0;
}
```
在这个例子中,我们首先初始化一个窗口开始于数组第一个元素,然后遍历整个数组,每次窗口向右移动一位,同时更新窗口内的元素总和。当我们移动到窗口结尾时,会从总和中移除窗口左侧的第一个元素,并输出该窗口的平均值。
阅读全文