c语言求矩阵两条对角线元素之和
时间: 2023-10-08 17:06:03 浏览: 117
请问您需要的是正方形矩阵的两条对角线元素之和还是矩形矩阵的两条斜线元素之和呢?以下给出两种情况的代码示例:
1. 正方形矩阵的两条对角线元素之和
```c
#include <stdio.h>
#define N 3 // 定义矩阵的阶数
int main()
{
int mat[N][N] = {{1,2,3},{4,5,6},{7,8,9}}; // 定义一个3阶矩阵
int i, sum1 = 0, sum2 = 0;
for(i = 0; i < N; i++)
{
sum1 += mat[i][i]; // 主对角线元素之和
sum2 += mat[i][N-i-1]; // 副对角线元素之和
}
printf("主对角线元素之和:%d\n", sum1);
printf("副对角线元素之和:%d\n", sum2);
return 0;
}
```
2. 矩形矩阵的两条斜线元素之和
```c
#include <stdio.h>
#define ROW 3 // 定义矩阵的行数
#define COL 4 // 定义矩阵的列数
int main()
{
int mat[ROW][COL] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}}; // 定义一个3行4列矩阵
int i, j, sum1 = 0, sum2 = 0;
int n = ROW < COL ? ROW : COL; // 取行数和列数中的最小值作为对角线元素个数
for(i = 0; i < n; i++)
{
sum1 += mat[i][i]; // 左上到右下的斜线元素之和
sum2 += mat[i][COL-i-1]; // 右上到左下的斜线元素之和
}
printf("左上到右下的斜线元素之和:%d\n", sum1);
printf("右上到左下的斜线元素之和:%d\n", sum2);
return 0;
}
```
阅读全文