C语言求矩阵的主对角线和次对角线上所有元素的和。矩阵输入、矩阵输出和矩阵对角线求和分别由三个子函数实现。(n的值由用户通过键盘输入)
时间: 2023-11-26 20:02:44 浏览: 484
计算机C语言学习可用材料
好的,下面是示例代码:
```c
#include <stdio.h>
#define MAX_SIZE 100
// 矩阵输入
void input_matrix(int mat[][MAX_SIZE], int n) {
printf("请输入%d阶矩阵:\n", n);
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &mat[i][j]);
}
}
}
// 矩阵输出
void output_matrix(int mat[][MAX_SIZE], int n) {
printf("矩阵为:\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
printf("%d ", mat[i][j]);
}
printf("\n");
}
}
// 矩阵主对角线和次对角线求和
void sum_diagonal(int mat[][MAX_SIZE], int n) {
int sum_main = 0, sum_sub = 0;
for (int i = 0; i < n; i++) {
sum_main += mat[i][i];
sum_sub += mat[i][n-i-1];
}
printf("主对角线和为:%d\n", sum_main);
printf("次对角线和为:%d\n", sum_sub);
}
int main() {
int n, mat[MAX_SIZE][MAX_SIZE];
printf("请输入矩阵的阶数:");
scanf("%d", &n);
input_matrix(mat, n);
output_matrix(mat, n);
sum_diagonal(mat, n);
return 0;
}
```
需要注意的是,这里我们使用了二维数组来存储矩阵,而且假设输入的矩阵为 n 阶方阵,因此数组大小为 MAX_SIZE × MAX_SIZE。在 `sum_diagonal` 函数中,我们使用两个变量 `sum_main` 和 `sum_sub` 分别累加主对角线和次对角线的元素之和,最后输出即可。
阅读全文