c++习题17-计算矩阵边缘元素之和

目录

一,问题

二,思路

三,代码 


一,问题

 描述

输入一个整数矩阵,计算位于矩阵边缘的元素之和。所谓矩阵边缘的元素,就是第一行和最后一行的元素以及第一列和最后一列的元素。

输入描述

第一行分别为矩阵的行数m和列数n(m<100,n<100),两者之间以一个空格分开。

接下来输入的m行数据中,每行包含n个整数,整数之间以一个空格分开。

输出描述

输出对应矩阵的边缘元素和。

用例输入 1 

3 3
3 4 1
3 7 1
2 0 1

用例输出 1

15

二,思路

  1.  因为题目有给出m和n最大可以取到的值:m=n=99  (m<100,n<100),表示二维数组每行每列都会有99-0+1=100个元素,所以需要定义一个100行100列的二维数组来存储这些元素。
  2.  接着就需要给数组中的每个元素赋值,在赋值的过程中就可以让存储求和结果的变量s加上矩阵边缘的元素                                                                              需要注意的是,参与了一次运算的元素不会再做第二次运算,如下图👇

三,代码 

#include <bits/stdc++.h>
using namespace std;
int main()
{
	int m,n,a[100][100],s=0;
	cin>>m>>n;
	for(int i=0; i<m; i++)
	{
		for(int j=0; j<n; j++)
		{
			cin>>a[i][j];
			if(i==0 | i==m-1) s+=a[i][j];
			else{
				if(j==0 | j==n-1) s+=a[i][j];
			}
		}
	}
	cout<<s;
	return 0;
}

 代码长度可以进一步缩短:

else{
				if(j==0 | j==n-1) s+=a[i][j];
			}

上面👆的代码块可以修改成下面👇的else  if语句

	else if(j==0 | j==n-1) s+=a[i][j];

有问题请在评论区留言或者是私信我,回复时间不超过一天。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值