C语言求二维数组Anm两条对角线上的元素之和
时间: 2024-10-25 12:14:43 浏览: 11
在C语言中,求解一个二维数组(如`int An[m][n]`)的两条对角线(主对角线和副对角线)上的元素之和,可以分别遍历这两条线并累加元素值。这里是一个简单的示例:
```c
#include <stdio.h>
// 定义函数计算对角线元素之和
int sumDiagonals(int An[][n], int m, int n) {
int mainDiagonalSum = 0;
int secondaryDiagonalSum = 0;
// 主对角线 (从左上到右下)
for (int i = 0; i < m && i < n; i++) {
mainDiagonalSum += An[i][i];
}
// 副对角线 (从右上到左下)
for (int i = 0; i < m && i < n; i++) {
secondaryDiagonalSum += An[i][m - i - 1]; // 注意索引变换
}
return mainDiagonalSum + secondaryDiagonalSum;
}
int main() {
int An[4][4] = { {1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12},
{13, 14, 15, 16} };
int m = sizeof(An) / sizeof(An[0]);
int n = sizeof(An[0]) / sizeof(An[0][0]);
int totalSum = sumDiagonals(An, m, n);
printf("主对角线和副对角线的元素之和为: %d\n", totalSum);
return 0;
}
```
在这个例子中,我们首先初始化两个变量`mainDiagonalSum`和`secondaryDiagonalSum`,然后分别遍历主对角线和副对角线上的元素,并将它们加到对应的总和中。最后返回两条对角线的元素之和。
阅读全文