有人可以帮助我解决这个问题吗,因为我花了很多时间解决这个问题,但没有取得任何进展。 我有一个大小为 3O 的数组中的数据。
- 我想取出数组的前五个元素,找到它们的平均值。将值存储在另一个数组中
- 然后移动到数组的第二个元素,从它们中找到 5 个后续元素的平均值。按上述方式将值存储在数组中。
然后编织到第三个元素,执行上面相同的操作,直到最后一个元素,在本例中为 30。
float tabdata[] = {1,2,3,4,...,30}; char *store; float sum; for(int j=0;j<tabdata[30-1];j++) sum += tabdata[j]; if (j=5) { float mean= sum/5; store[j]=mean; sum=0; for(i=j;i>tabdata[30-1];i++) sum +=tabdata[i];
如果(j=5) --- ---- ....需要帮助来完成这个循环。
最佳答案
每一步只需添加下一个元素的 1/5 并减去当前窗口中第一个元素的 1/5。您唯一需要担心的是浮点精度。
关于c - 如何获取数组的移动平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3398455/