发布网友 发布时间:2024-05-01 12:25
共1个回答
热心网友 时间:2024-09-16 13:37
一维数组循环移位不靠谱,你这个最好是用队列。队列的函数所在位置见下图
具体的思路是这样:
(1)在采集数据的while循环外面创建一个队列引用,队列的大小设为100
(2)在循环里面,用“有损耗元素入列”把数据送入队列
(3)获取队列状态,把队列内的元素取出,做平均值
(4)while循环结束,在while循环外释放队列引用
见下面截图
用“有损耗元素入列”可以保证当队列达到设定的大小时,新入列的数据会把原来的数据顶出去,比如第101个元素入列时,第1个元素就会从队列中清出去。
还有一种方法,看起来相对简单些,但是长时间运行的话可能会造成内存泄露,程序所占的内存会越来越大。其思路是:
(1)建立一个空的数组,每次采集都向数组内添加数据,
(2)然后检测数组大小,若数组大小<=100,直接求取数组内的数据的平均值,若数组大小大于100,删除第一个元素,再求平均值
见下图
两种方法都放在附件里了,自己选择喜欢的吧