站群系列服务器做视频网站/怎样做网络销售平台
文章目录
- 0 效果
- 1 题目
- 2 思路
- 3 代码
0 效果
只开3个数组
开1010个数组:
难点:认真读题,特殊情况处理
1 题目
2 思路
- 当n = 2时,为特殊情况,第一个和第二个输出数的值都两个数的平均值;
- 当n > 2时,对第一个数和最后两个个数特殊处理
- 第一个数的输出等于,当输入玩第二个数后,第一个和第二个数区平均为输出值
- 最后一个数输入时,倒数第二个数为最后输入的三个数的平均值,最后一个数为最后输入的两个数的平均值
- 其余情况,输出到目前为止最后三个输入数的平均值作为上一个数的输出。
- 注意:为了节省空间,因为计算只需用到3个数组,因此就只开三个数组大小,不满三个输入时,依次存入A[0],A[1],A[2],满三个数后,A的数组依次前移一个,最后一个存储最新输入的值。
3 代码
#include<cstdio>
int main(){int n, num;int A[3];scanf("%d", &n);for(int i = 0; i< n; i++){scanf("%d", &num);if(i < 3){A[i] = num; }else{A[0] = A[1];A[1] = A[2];A[2] = num;}if(n == 2 && i == 1){int res = (A[0] + A[1])/2;printf("%d %d", res, res);}else if(i == 1){printf("%d", (A[0] + A[1])/2);}else if(i == n - 1){printf(" %d %d", (A[0] + A[1] + A[2])/3, (A[1] + A[2])/2);}else if(i > 1){printf(" %d", (A[0] + A[1] + A[2])/3);}}return 0;
}