在一个N行N列的方阵(或称N阶方阵)中,从左上角到右下角这一斜线上有N个数据元素,这个斜线称为方阵的主对角线。给你一个方阵,请求方阵主对角线上数据的和。用c++语言
时间: 2024-03-16 19:46:05 浏览: 60
好的,那么你可以使用以下的 C++ 语言代码实现:
```cpp
#include <iostream>
#include <vector>
using namespace std;
int diagonal_sum(vector<vector<int>> &matrix) {
/*
计算方阵主对角线上数据的和
Args:
matrix: N*N的方阵,用二维vector表示
Returns:
主对角线上数据的和
*/
int n = matrix.size();
int sum = 0;
for (int i = 0; i < n; i++) {
sum += matrix[i][i];
}
return sum;
}
int main() {
int n, x;
vector<vector<int>> matrix;
cout << "请输入方阵的大小:";
cin >> n;
// 输入矩阵
cout << "请输入方阵的元素:" << endl;
for (int i = 0; i < n; i++) {
vector<int> row;
for (int j = 0; j < n; j++) {
cin >> x;
row.push_back(x);
}
matrix.push_back(row);
}
// 计算主对角线和
int sum = diagonal_sum(matrix);
cout << "主对角线上的元素之和为:" << sum << endl;
return 0;
}
```
这个程序使用了 C++11 中的 vector 容器来表示二维数组。它先读入用户输入的方阵,然后调用 `diagonal_sum` 函数计算主对角线上的元素之和。与 C 语言不同的是,C++ 中的 vector 容器会自动释放内存,不需要手动管理。
阅读全文
相关推荐














