C语言设计一个算法求二维数组Ann两条对角线上元素之和
时间: 2024-11-03 10:21:58 浏览: 11
C语言实现3*3数组对角线之和示例
5星 · 资源好评率100%
为了计算二维数组 Ann 中两条对角线(主对角线和副对角线)上所有元素的总和,你可以设计以下 C 语言算法:
```c
#include <stdio.h>
// 函数声明
int sumDiagonals(int arr[][N], int rows, int cols);
int main() {
int N = 4; // 二维数组的行数和列数需预先确定
int Ann[N][N]; // 假设已填充二维数组 Ann
// 初始化二维数组 (这里仅为示例)
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
Ann[i][j] = i + j;
}
}
// 计算并打印两条对角线的和
int main_diagonal_sum = sumDiagonals(Ann, N, N);
printf("Main diagonal sum: %d\n", main_diagonal_sum);
int secondary_diagonal_sum = sumDiagonals(Ann, N, N); // 主对角线和副对角线相等,此处无需再调用函数
printf("Secondary diagonal sum: %d\n", secondary_diagonal_sum);
return 0;
}
// 定义求对角线和的函数
int sumDiagonals(int arr[][N], int rows, int cols) {
int sum1 = 0; // 主对角线和
int sum2 = 0; // 副对角线和
for (int i = 0; i < rows && i < cols; i++) {
sum1 += arr[i][i];
sum2 += arr[i][rows - i]; // 副对角线从右上到左下
}
return sum1 + sum2;
}
```
在这个例子中,`sumDiagonals` 函数遍历给定的二维数组 Ann,分别累加主对角线 (arr[i][i]) 和副对角线 (arr[i][rows - 1 - i]) 的元素,并返回它们的总和。
阅读全文