求n阶方阵主副对角线之和
时间: 2024-12-15 13:28:17 浏览: 21
在C语言中,计算一个给定大小n阶方阵(二维数组)的主对角线和副对角线之和,你可以创建两个变量分别用于存储这些值。主对角线是从左上到右下的对角线,而副对角线是从右上到左下的对角线。
以下是一个简单的示例,假设我们有一个名为`matrix`的n x n的二维整型数组:
```c
#include <stdio.h>
// 假设matrix[n][n]是你的n阶方阵
int main_diagonal_sum(int matrix[][n], int n) {
int sum = 0;
for (int i = 0; i < n; i++) {
sum += matrix[i][i];
}
return sum;
}
int secondary_diagonal_sum(int matrix[][n], int n) {
int sum = 0;
for (int i = 0; i < n; i++) {
sum += matrix[i][n - 1 - i]; // 注意索引从0开始,所以这里是矩阵的右上方元素
}
return sum;
}
int main() {
int n, element;
printf("Enter the size of the matrix: ");
scanf("%d", &n);
int matrix[n][n];
printf("Enter the elements of the matrix:\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &element);
matrix[i][j] = element;
}
}
int main_diag_sum = main_diagonal_sum(matrix, n);
int sec_diag_sum = secondary_diagonal_sum(matrix, n);
printf("Sum of the main diagonal: %d\n", main_diag_sum);
printf("Sum of the secondary diagonal: %d\n", sec_diag_sum);
return 0;
}
```
在这个程序中,`main_diagonal_sum`和`secondary_diagonal_sum`函数分别计算了主对角线和副对角线的和。然后,在`main`函数中,用户会被要求输入矩阵的尺寸和元素,最后打印出两者的和。
如果你有具体的矩阵数据或遇到了特定的问题,请提供更多信息。
阅读全文