这可能是你的算法问题,试一试以下的算法:
Const Max = 100;
List :array [0...Max ] of integer;//数组大小自己定。
NextIndex:integer;
ListCount:integer;
Sum:integer;
//全部变量(包括数组)都要初始化为0;
Function Avg(NewItem:integer):integer
begin
//修改有效数字数量
if ListCount < Max then
Inc(ListCount);
//求数组和
Sum :=Sum+ NewItem -List[NextIndex] ;
//记录新数据
List[NextIndex]:=NewItem ;
//设置下一个读写位置
inc(NextIndex);
if NextIndex = Max then
NextIndex:=0;
//返回平均值
Result := Round(Sum/ListCount) ;
end;