用C语言编写一个程序,求二维数组对角线之和,能通用
时间: 2024-12-13 22:27:21 浏览: 4
在C语言中,你可以通过嵌套循环来遍历二维数组,并计算对角线上的元素之和。这里是一个简单的示例程序,它接受用户输入的二维整数数组,然后计算主对角线和副对角线的总和:
```c
#include <stdio.h>
// 函数声明
int sum_diagonals(int array[][N], int rows, int cols);
int main() {
int N;
printf("请输入二维数组的行数和列数:");
scanf("%d", &N);
// 二维数组声明
int my_array[N][N];
printf("请输入二维数组的元素:\n");
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
scanf("%d", &my_array[i][j]);
}
}
// 计算并打印主对角线和副对角线的和
int main_diag_sum = sum_diagonals(my_array, N, N);
int anti_diag_sum = sum_diagonals(my_array, N, N - 1); // 如果是反向对角线,减去一
printf("主对角线的和为:%d\n", main_diag_sum);
printf("副对角线的和为:%d\n", anti_diag_sum);
return 0;
}
// 定义计算对角线和的函数
int sum_diagonals(int array[][N], int rows, int cols) {
int sum = 0;
if (rows > 0 && cols > 0) {
for (int i = 0; i < rows; i++) {
sum += array[i][i]; // 主对角线元素
if (cols > 1) {
sum += array[i][rows - 1 - i]; // 反向主对角线,当反向对角线存在时
}
}
}
return sum;
}
```
阅读全文