C++设计一个算法,求二维数组Anm两条对角线上的元素之和
时间: 2024-10-15 17:14:44 浏览: 45
基于C++编写一个函数求一个4*4二维数组所有周边元素的和
在C++中,设计一个算法计算二维数组`An[m][n]`的两条对角线上的元素之和,你可以使用嵌套循环遍历数组,分别累加主对角线(从左上到右下)和副对角线(从左下到右上)的元素。下面是一个简单的示例:
```cpp
#include <iostream>
int sumDiagonals(int An[][n], int m, int n) {
int sumMain = 0;
int sumSecondary = 0;
// 主对角线
for (int i = 0; i < m && i < n; i++) {
sumMain += An[i][i];
}
// 副对角线
for (int i = 0; i < m && i < n; i++) {
sumSecondary += An[i][m - 1 - i]; // 注意索引调整,因为副对角线是从右上到左下
}
return sumMain + sumSecondary;
}
int main() {
int m, n;
std::cout << "请输入矩阵的行数和列数:";
std::cin >> m >> n;
int An[m][n]; // 假设用户输入了数组元素
// ... 获取并填充数组 ...
int result = sumDiagonals(An, m, n);
std::cout << "主对角线和副对角线上的元素之和是:" << result << "\n";
return 0;
}
```
在这个例子中,`sumDiagonals`函数接受二维数组`An`、行数`m`和列数`n`作为参数,然后分别计算两个对角线的和,并返回总和。
阅读全文