加载中...

浙江理工大学入队200题——12G

问题 G: 零基础学C/C++132——边界均值

题目描述

给定一个n*n的二维数组,求出边界元素的平均值。(所谓边界元素是指该数组周边的元素,即把它当作一个棋盘,四周最边上的元素)

输入

输入为多组测试数据。

第一行有1个整数n(2<=n<=10)。
接下来有n行,每行n个整数,表示n*n二维数组的所有元素。

输出

输出边界元素的平均值,保留2位小数

样例输入 Copy

3
1 2 3
2 3 4
3 4 5

样例输出 Copy

3.00

题解

思路你肯定知道╮(๑•́ ₃•̀๑)╭,但我还是要说,周围一圈加起来除于4*n-4,如果你的代码会把四个角分别多加一次,那么只需要减去就好了。
如果你是首行+尾行再加中间,记得重置个数(如果不用4n-4情况下)
问题的关键是你能不能化抽象为具象(●´∀`●)
代码(AC)

点击查看代码
#include <stdio.h>
#include <math.h>	
int a[500][500];
int main ()
{
	int n;
	while(scanf("%d",&n)!=EOF)
	{
		
		int sum=0;
		float ave;
		for(int i=0;i<n;i++)
		{
			for(int j=0;j<n;j++)
			{
				scanf("%d",&a[i][j]);
			}
		}//
		for(int i=0;i<n;i++)
		{
			for(int j=0;j<n;j++)
			{
				if(i==0||j==0||i+1==n||j+1==n) sum=sum+a[i][j];
			}
		}
		ave=(float)sum/(float)(4*n-4);
		printf("%.2f\n",ave);
    }  
	return 0;
}
posted @ 2022-10-29 16:43  shany212  阅读(21)  评论(0编辑  收藏  举报