C语言进出栈

想用C语言写个求平均的程序,就是一个数组8个数,每次进来一个新数到数组头,然后数组各数依次后移,数组尾的那个数被移除出数组,然后再对数组的8个数进行求平均.这个程序怎么写.

用栈的话不好,因为栈是后进先出的,这意味着新数一进来就会被移走,所以不适合本题。
可以考虑用队列,队列的话是先进先出,满足题意。
楼上说用链表,其实也可以。
再或者,直接用数组就够了。
#include <stdio.h>
void main()
{
int a[8] = {1,2,3,4,5,6,7,8};
int i = 0;
int j;
double tol;
while (scanf("%d",&a[i]))
{
i = (i + 1) % 8;
tol = 0;
for (j=0; j<8; j++)
tol += a[j];
printf("%lf\n",tol/8);
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-06-23
这个用数组比较麻烦,还是用链表比较好。
第2个回答  2011-06-23
给个循环就可以了啊 让n-2的值给到n-1位置上,以此类推,知道0位置给到1位置,空出0位置,跳出循环,将新数给到0位置。给循环过程中,记录每次给的数的累加,跳出循环然后再加上新数,除以数组长度就可以了。这只是思路,程序自己写吧
相似回答