时间限制: 1000 ms 内存限制: 65536 KB
【题目描述】
输入一个整数矩阵,计算位于矩阵边缘的元素之和。所谓矩阵边缘的元素,就是第一行和最后一行的元素以及第一列和最后一列的元素。
【输入】
第一行分别为矩阵的行数m和列数n(m<100,n<100),两者之间以一个空格分开。
接下来输入的m行数据中,每行包含n个整数,整数之间以一个空格分开。
【输出】
输出对应矩阵的边缘元素和。
【输入样例】
3 3
3 4 1
3 7 1
2 0 1
【输出样例】
15
【解题代码】
方法一:
#include <iostream>
using namespace std;
int main() {
int m,n,a,s=0;
cin>>m>>n;
for(int i=1;i<=m;i++){
for(int j=1;j<=n;j++){
cin>>a;
if((i==1 || i==m) || (j==1 || j==n)){ //判断是否为矩形边缘元素
s+=a;
}
}
}
cout<<s<<endl;
return 0;
}
方法二:
#include <iostream>
using namespace std;
int main() {
int m,n,a[101][101],s=0;
cin>>m>>n;
for(int i=1;i<=m;i++){
for(int j=1;j<=n;j++){
cin>>a[i][j];
}
}
for(int i=1;i<=n;i++){ //计算第1行和第m行的和
s+=a[1][i];
s+=a[m][i];
}
for(int i=2;i<=m-1;i++){ //计算第1列和第n列的和(不包括上面算过的)
s+=a[i][1];
s+=a[i][n];
}
cout<<s<<endl;
return 0;
}