用C++求数组主对角线上的数之和
时间: 2024-03-09 10:46:31 浏览: 67
可以使用如下代码来实现:
```c++
#include <iostream>
using namespace std;
const int N = 1000;
int a[N][N]; // 定义 N * N 的二维数组
int main()
{
int n;
cin >> n;
// 输入二维数组
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
cin >> a[i][j];
// 计算主对角线上的数之和
int sum = 0;
for (int i = 0; i < n; i++)
sum += a[i][i];
cout << sum << endl;
return 0;
}
```
其中,`a[i][j]` 表示二维数组中第 `i` 行、第 `j` 列的元素。主对角线上的数就是指 `a[i][i]`,即第 `i` 行、第 `i` 列的元素。因此,我们只需要遍历 `a[i][i]`,将其累加即可得到主对角线上的数之和。
相关问题
定义一个5行5列的二维数组,通过键盘输入其初始值。求该二维数组主对角线上数字的和c++
以下是C++代码实现:
```c++
#include <iostream>
using namespace std;
int main()
{
int arr[5][5];
int sum = 0;
// 输入二维数组的初始值
cout << "请输入二维数组的初始值:" << endl;
for(int i=0; i<5; i++)
{
for(int j=0; j<5; j++)
{
cin >> arr[i][j];
}
}
// 求主对角线上数字的和
for(int i=0; i<5; i++)
{
sum += arr[i][i];
}
cout << "主对角线上数字的和为:" << sum << endl;
return 0;
}
```
首先定义一个5行5列的二维数组 `arr`,然后通过 `for` 循环和 `cin` 语句从键盘输入其初始值。接着再通过 `for` 循环计算主对角线上数字的和 `sum`,最后输出结果。
如何求数组主对角线求和
在C++中,如果你有一个二维数组(比如`std::vector<std::vector<int>>`或`int arr[n][n]`),你可以遍历数组的主对角线并计算元素之和。主对角线是从左上角到右下角的元素组成的序列。以下是一个简单的示例:
```cpp
#include <iostream>
#include <vector>
int sumDiagonal(std::vector<std::vector<int>>& matrix) {
int sum = 0;
for (int i = 0; i < matrix.size(); ++i) {
if (i < matrix[i].size()) { // 避免访问越界
sum += matrix[i][i];
}
}
return sum;
}
// 示例用法
int main() {
std::vector<std::vector<int>> array = {{1, 2, 3},
{4, 5, 6},
{7, 8, 9}};
int diagonalSum = sumDiagonal(array);
std::cout << "主对角线元素的和为: " << diagonalSum << std::endl;
return 0;
}
```
这段代码定义了一个名为`sumDiagonal`的函数,它接受一个二维向量`matrix`作为参数,然后逐行逐列检查是否在对角线上,如果在就加到总和`sum`上。最后返回这个总和。
如果你有一个传统的一维数组(`int arr[]`),也可以使用类似的方法处理,只需调整索引即可。
阅读全文