用c语言代码实现求一个n×n矩阵的两个对角线元素的和
时间: 2024-05-01 07:19:56 浏览: 81
以下是用C语言代码实现求一个n×n矩阵的两个对角线元素的和:
```c
#include <stdio.h>
int main() {
int n, i, j, sum1 = 0, sum2 = 0;
printf("请输入矩阵的维数n:");
scanf("%d", &n);
int a[n][n]; // 定义矩阵
printf("请输入矩阵的元素:\n");
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
scanf("%d", &a[i][j]); // 读入矩阵元素
}
}
for (i = 0; i < n; i++) {
sum1 += a[i][i]; // 求主对角线元素的和
sum2 += a[i][n - 1 - i]; // 求副对角线元素的和
}
printf("主对角线元素的和为:%d\n", sum1);
printf("副对角线元素的和为:%d\n", sum2);
return 0;
}
```
程序运行时,先输入矩阵的维数n,然后输入矩阵的元素,最后输出主对角线元素的和和副对角线元素的和。
相关问题
用c语言代码实现求一个3×3矩阵的两个对角线元素的和
以下是用C语言实现求一个3x3矩阵的两个对角线元素的和的代码:
```c
#include <stdio.h>
int main() {
int mat[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; // 初始化一个3x3矩阵
int sum = 0;
int i, j;
// 求主对角线元素的和
for (i = 0; i < 3; i++) {
sum += mat[i][i];
}
// 求副对角线元素的和
for (i = 0, j = 2; i < 3; i++, j--) {
sum += mat[i][j];
}
printf("两个对角线元素的和为:%d\n", sum);
return 0;
}
```
输出结果为:
```
两个对角线元素的和为:30
```
解释一下代码:
首先,我们初始化一个3x3的矩阵mat,接着定义一个sum变量用来记录两个对角线元素的和。然后,我们使用两个for循环分别求出主对角线和副对角线的元素和。主对角线上的元素坐标为(i, i),而副对角线上的元素坐标为(i, 2-i)。最后,我们将求得的两个对角线元素的和输出即可。
C语言 有一个n×n的矩阵,求两个对角线元素的和
可以使用如下的C语言代码来求解:
```c
#include <stdio.h>
int main() {
int n, i, j, sum1 = 0, sum2 = 0;
printf("请输入矩阵的大小n:");
scanf("%d", &n);
int a[n][n];
// 读入矩阵元素
printf("请输入矩阵中的元素:\n");
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
scanf("%d", &a[i][j]);
}
}
// 求对角线元素的和
for (i = 0; i < n; i++) {
sum1 += a[i][i];
sum2 += a[i][n-i-1];
}
printf("矩阵对角线元素的和为:%d和%d\n", sum1, sum2);
return 0;
}
```
首先,我们需要输入矩阵的大小n,并创建一个二维数组a来存储矩阵元素。然后,我们通过两个循环读入矩阵元素。
接下来,我们使用两个循环分别累加主对角线和副对角线上的元素值。主对角线上的元素坐标为a[i][i],而副对角线上的元素坐标为a[i][n-i-1],其中n-i-1是副对角线上元素的列坐标。
最后,输出两个对角线元素的和即可。
阅读全文