【C语言】求周边元素值之和

任务描述

本关任务:请编写函数fun(),函数的功能是:求出某个二维数组(如5行5列)的周边元素值之和,作为函数值返回。

测试说明

平台会对你编写的代码进行测试:

输入:第一行为一个整数n,代表数组维数。第二行开始为二维数组赋值。 输出:周边元素之和。

测试输入: 3 1 2 3 4 5 6 7 8 9 预期输出: 40

 

源程序如下:

#define N 10//宏定义N=10
#include <stdio.h>

int fun(int a[N][N],int n)
{
	int i,j,sum = 0;
	for (i = 0; i < n; i++)//控制行变量遍历
		for (j = 0; j < n; j++)//控制列变量遍历
			if (i == 0 || i == (n-1) || j == 0 || j == (n-1))//判断是否为周边元素
				sum += a[i][j];//进行求和运算
	return sum;
}
void main()
{
	int number[N][N];//定义二维数组并赋初值
	int i, j, n=3;//定义循环变量
	int sum = 0;//定义加和变量,并初始化赋值为0
	printf("请输入一个二维数组的维度:\n");
	scanf("%d",&n);
	for (i = 0; i < n; i++)//控制行变量遍历
		for (j = 0; j < n; j++)//控制列变量遍历
			scanf("%d",&number[i][j]);
	sum = fun(number,n);
	printf("%d", sum);//输出和
}
请输入一个二维数组的维度:3
1 2 3 4 5 6 7 8 9

周边元素之和为:40

 

#include <stdio.h>
#define N 10
int fun(int a[N][N], int n);
int main()
{
    int a[N][N];
    int n,i,j;
    scanf("%d", &n);
    for(i = 0; i < n; i++)
    {
        for(j = 0; j < n; j++)
        {
            scanf("%d", &a[i][j]);
        }
    }
    printf("%d", fun(a,n));
}

int fun(int a[N][N], int n)
{
    int s = 0, i;
    for(i = 0; i < n; i++)
        s += a[0][i] + a[n-1][i];
    for(i = 1; i < n-1; i++)
        s += a[i][0] + a[i][n-1];
    return s;
}

 

这题,主要是周围元素的判定,找出规律,第一行和最后一行,第一列和最后一列,根据这个写循环判定即可

代码如下,如有帮助,请采纳一下,谢谢。

#include <stdio.h>
#define N 10
int fun(int a[N][N],int n)
{
	if (n > N)
	{
		n = N;
	}
	int sum = 0;
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < n;j++)
		{
			if (i == 0 || j == 0 || i == n-1 || j == n-1)
			{
				sum += a[i][j];
			}
		}
	}
	return sum;
}

int main()
{
	printf("请输入n:");
	int n;
	scanf("%d",&n);
	printf("请输入数据:");
	int a[N][N] = {0};
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < n;j++)
		{
			scanf("%d",&a[i][j]);
		}
	}

	printf("%d\n",fun(a,n));

	getchar();
	getchar();
	return 0;
}

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632