一道c语言笔试题,请问各位大侠这是实现了什么功能?

li_rui_1220 2014-01-14 12:18:19
float buff[20];
float newdata;
float temp(void)
{
unsigned char i;
float result;
for(i = 0;i < 19;i++)
{
buff[i] = buff[i++];
}
buff[i] = newdata;
result = buff[0];
for(i = 1;i< 20;i++)
{
result += buff[i];
}
return (result/20);
}
试说明周期性调用上面的函数,所实现的功能。
谢谢各位大侠啦!!
...全文
306 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
pathletboy 2014-01-15
  • 打赏
  • 举报
回复
取最新20个数据的平均值。
u010599631 2014-01-15
  • 打赏
  • 举报
回复
lin5161678 2014-01-14
  • 打赏
  • 举报
回复
代码是错误的 buff[i] = buff[i++];未定义行为了
Mr. Code 2014-01-14
  • 打赏
  • 举报
回复
采集一次新的数据,并用最新的数据覆盖旧的数据,然后计算之前的20次采集到的数据的平均值。
寒沙胜雪 2014-01-14
  • 打赏
  • 举报
回复
新手不明白什么叫滑动平均窗口,难道这是网络应用?
u010599631 2014-01-14
  • 打赏
  • 举报
回复
那当然有啦。只是所谓较好是什么个概念? 他这里有不少无谓的运算浪费了运算力,还有buf的平移,如果只是为了计算滑动平均值,当然没必要他这么复杂。但是如果是其他目的,另当别论。
li_rui_1220 2014-01-14
  • 打赏
  • 举报
回复
引用 5 楼 u010599631 的回复:
滑动平均窗口,每次前进一个步骤,将最老的数据去掉,将最新的数据加进来,然后求均值。
请问还有没有实现这功能较好的方法啊!
_xiaoyan_ 2014-01-14
  • 打赏
  • 举报
回复
引用 5 楼 u010599631 的回复:
滑动平均窗口,每次前进一个步骤,将最老的数据去掉,将最新的数据加进来,然后求均值。
+2
Bird_1989 2014-01-14
  • 打赏
  • 举报
回复
引用 5 楼 u010599631 的回复:
滑动平均窗口,每次前进一个步骤,将最老的数据去掉,将最新的数据加进来,然后求均值。
+1
u010599631 2014-01-14
  • 打赏
  • 举报
回复
滑动平均窗口,每次前进一个步骤,将最老的数据去掉,将最新的数据加进来,然后求均值。
lin5161678 2014-01-14
  • 打赏
  • 举报
回复
每次 舍弃数组第0个数 把newdata填入数组尾部 然后返回 处理之后的数组元素平均数
li_rui_1220 2014-01-14
  • 打赏
  • 举报
回复
引用 2 楼 lin5161678 的回复:
代码是错误的 buff[i] = buff[i++];未定义行为了
不好意思,写错了是buff[i] = buf[i+1];

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧