求n阶矩阵对角线的和c语言
时间: 2024-02-23 12:03:01 浏览: 66
可以使用双重循环遍历矩阵进行求解,代码如下:
```c
#include <stdio.h>
int main() {
int n; // 矩阵阶数
printf("请输入矩阵的阶数:");
scanf("%d", &n);
int matrix[n][n]; // 定义矩阵
int i, j, sum = 0; // i, j 为循环计数器,sum 为对角线元素之和
// 输入矩阵元素
printf("请输入矩阵的元素:\n");
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
scanf("%d", &matrix[i][j]);
}
}
// 计算对角线元素之和
for (i = 0; i < n; i++) {
sum += matrix[i][i];
}
printf("矩阵对角线的和为:%d\n", sum);
return 0;
}
```
以上代码中,我们首先通过 `scanf` 函数输入矩阵的阶数,然后定义一个 `n * n` 的矩阵(数组)并输入矩阵元素。接着,使用两重循环遍历矩阵的对角线元素,并将其累加到 `sum` 变量中。最后,输出 `sum` 变量即可得到矩阵对角线元素之和。
相关问题
c语言求n阶矩阵的对角线之和
可以使用二维数组来表示一个n阶矩阵,然后用一个循环来遍历对角线上的元素,最后累加起来即可。具体的代码示例如下:
```c
#include <stdio.h>
int main() {
int n;
printf("请输入矩阵的阶数n:");
scanf("%d", &n);
int matrix[n][n]; // 定义一个n阶矩阵
printf("请输入矩阵的%d个元素:\n", n * n);
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &matrix[i][j]);
}
}
int sum = 0;
for (int i = 0; i < n; i++) {
sum += matrix[i][i]; // 累加对角线上的元素
}
printf("矩阵对角线之和为:%d\n", sum);
return 0;
}
```
在上面的代码中,我们先从用户那里输入矩阵的阶数n,然后定义一个n阶矩阵,并让用户输入矩阵的元素。接着,我们用一个循环遍历对角线上的元素,并累加它们的值到变量`sum`中。最后,我们输出`sum`即为矩阵对角线之和。
C语言编写一个函数,求N阶矩阵的主对角线元素之和
可以编写一个函数,使用二维数组存储矩阵,然后遍历主对角线元素并求和。具体实现如下:
```c
#include <stdio.h>
int sumOfMainDiagonal(int arr[][100], int n) {
int sum = 0;
for (int i = 0; i < n; i++) {
sum += arr[i][i];
}
return sum;
}
int main() {
int n;
printf("请输入矩阵的阶数:");
scanf("%d", &n);
int arr[100][100];
printf("请输入矩阵的元素:\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &arr[i][j]);
}
}
int sum = sumOfMainDiagonal(arr, n);
printf("主对角线元素之和为:%d\n", sum);
return 0;
}
```
在该程序中,`sumOfMainDiagonal()` 函数接收一个二维数组 `arr` 和矩阵阶数 `n`,遍历主对角线元素并求和,返回结果。在 `main()` 函数中,首先从用户输入矩阵阶数和元素,然后调用 `sumOfMainDiagonal()` 函数计算主对角线元素之和并输出结果。
阅读全文