使用C语言编写一个每隔1s取10个数据计算滑动平均值的算法
时间: 2024-03-26 08:39:16 浏览: 75
LABVIEW求数组的N个元素的滑动平均值
5星 · 资源好评率100%
下面是一个使用C语言编写的每隔1秒取10个数据计算滑动平均值的算法示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 10 // 数据个数
#define M 5 // 平均值个数
float slide_average(float *data, int size) {
float sum = 0;
int i;
for (i = 0; i < size; i++) {
sum += data[i];
}
return sum / size;
}
int main() {
float data[N];
float avg[M];
int i, j;
while (1) {
// 每隔1秒取10个数据
for (i = 0; i < N; i++) {
data[i] = (float)rand() / RAND_MAX; // 用随机数模拟实际数据
}
// 计算滑动平均值
for (i = 0; i < M; i++) {
avg[i] = slide_average(&data[i], N - i);
}
// 输出结果
printf("滑动平均值:");
for (i = 0; i < M; i++) {
printf("%.2f ", avg[i]);
}
printf("\n");
// 等待1秒
sleep(1);
}
return 0;
}
```
这个程序使用了rand()函数生成了10个随机数作为模拟数据,然后每隔1秒钟计算10个数据的滑动平均值。滑动平均值的计算使用了一个slide_average()函数,它接受一个数组和数组大小作为输入参数,返回一个浮点型的平均值。
在主程序中,使用一个循环不断地取数据、计算平均值,并输出结果。程序中使用了sleep()函数等待1秒钟,以实现每隔1秒钟取一次数据的功能。
阅读全文