用C语言实现滚动平均值
时间: 2024-10-24 16:07:47 浏览: 14
在C语言中,没有直接内置的滚动窗口平均值计算功能,但可以手动实现一个简单的版本,例如通过遍历数组并维护一个滑动窗口内的元素求平均。这里有一个基本的示例,假设我们有一个整数数组和一个固定的窗口大小:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义滑动窗口大小
#define WINDOW_SIZE 3
void sliding_average(int *arr, int size, int *avg_window) {
int sum = 0;
int count = 0; // 统计窗口内元素个数
for (int i = 0; i < size - WINDOW_SIZE + 1; i++) { // 遍历整个数组
sum += arr[i]; // 累加窗口内的数值
if (i >= WINDOW_SIZE - 1) { // 当窗口填满时开始移除第一个元素
sum -= arr[i - WINDOW_SIZE];
}
count++; // 移动窗口
avg_window[i] = sum / count; // 计算平均值并保存
}
}
int main() {
int data[] = {10, 20, 30, 40, 50, 60, 70};
int size = sizeof(data) / sizeof(data[0]);
int* avg_window = malloc(size * sizeof(int));
sliding_average(data, size, avg_window);
printf("滚动平均值: ");
for (int i = 0; i < size - WINDOW_SIZE + 1; i++) {
printf("%d ", avg_window[i]);
}
free(avg_window);
return 0;
}
阅读全文