题目描述
2020年06月2级第一题题目:计算矩阵边缘元素之和
输入一个整数矩阵,计算位于矩阵边缘的元素之和。所谓矩阵边缘的元素,就是第一行和最后一行的元素以及第一列和最后一列的元素。
输入
第一行分别为矩阵的行数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;
cin >> m >> n;
// 初始化矩阵
int matrix[m][n];
// 读取矩阵元素
for (int i = 0; i < m; ++i) {
for (int j = 0; j < n; ++j) {
cin >> matrix[i][j];
}
}
int sum = 0;
// 计算第一行和最后一行的元素之和
for (int j = 0; j < n; ++j) {
sum += matrix[0][j]; // 第一行
if (m > 1) {
sum += matrix[m-1][j]; // 最后一行
}
}
// 计算第一列和最后一列的元素之和(不包括已经计算过的角)
for (int i = 1; i < m - 1; ++i) {
sum += matrix[i][0]; // 第一列
if (n > 1) {
sum += matrix[i][n-1]; // 最后一列
}
}
cout << sum << endl;
return 0;
}
这个程序首先读取矩阵的尺寸m
和n
,然后读取矩阵的所有元素。接着,它计算矩阵的第一行、最后一行、第一列和最后一列的元素之和,但注意避免重复计算四个角落的元素。最后,程序输出这些边缘元素的总和。