c - 如何获取数组的移动平均值

标签 c

有人可以帮助我解决这个问题吗,因为我花了很多时间解决这个问题,但没有取得任何进展。 我有一个大小为 3O 的数组中的数据。

  1. 我想取出数组的前五个元素,找到它们的平均值。将值存储在另一个数组中
  2. 然后移动到数组的第二个元素,从它们中找到 5 个后续元素的平均值。按上述方式将值存储在数组中。
  3. 然后编织到第三个元素,执行上面相同的操作,直到最后一个元素,在本例中为 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/

相关文章:

C++ - 全局 setlocale 有效,传递给 _vsnprintf_l 的相同语言环境无效

c - C中的序列化错误

c - scanf %d 大输入段错误

c - 将 malloc() 用于双指针

C - 初始化后二维数组打印崩溃

c - while(~scanf 在 C 中意味着什么?

c - 数组中的元素太多!

c - POSIX 消息队列,errno 90,消息太长

c - 为什么在输入一些文本并按下 "enter"键 (EOF) 后 printf 语句不在这里执行?

c - 将 `ifdef` 放在源文件的第一行有什么意义?