C语言求一个N×N矩阵主、次对角线上所有元素之和。矩阵输入、矩阵输出、矩阵对角线求和分别用三个子函数实现。(N的值由用户从键盘输入)
时间: 2024-02-26 21:56:58 浏览: 61
好的,这是一个比较基础的 C 语言程序,下面是实现过程:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100
// 矩阵输入函数
void input_matrix(int matrix[][MAX_SIZE], int n) {
printf("请输入矩阵的元素:\n");
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
scanf("%d", &matrix[i][j]);
}
}
}
// 矩阵输出函数
void output_matrix(int matrix[][MAX_SIZE], int n) {
printf("矩阵的元素为:\n");
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
printf("%d\t", matrix[i][j]);
}
printf("\n");
}
}
// 主对角线求和函数
int sum_main_diagonal(int matrix[][MAX_SIZE], int n) {
int sum = 0;
for(int i = 0; i < n; i++) {
sum += matrix[i][i];
}
return sum;
}
// 次对角线求和函数
int sum_secondary_diagonal(int matrix[][MAX_SIZE], int n) {
int sum = 0;
for(int i = 0; i < n; i++) {
sum += matrix[i][n-i-1];
}
return sum;
}
int main() {
int n, matrix[MAX_SIZE][MAX_SIZE];
printf("请输入矩阵的大小:");
scanf("%d", &n);
if(n > MAX_SIZE) {
printf("矩阵的大小不能超过%d\n", MAX_SIZE);
exit(1);
}
input_matrix(matrix, n);
output_matrix(matrix, n);
printf("矩阵的主对角线元素之和为%d\n", sum_main_diagonal(matrix, n));
printf("矩阵的次对角线元素之和为%d\n", sum_secondary_diagonal(matrix, n));
return 0;
}
```
这个程序中,我们定义了 `input_matrix`、`output_matrix`、`sum_main_diagonal` 和 `sum_secondary_diagonal` 四个函数,分别用于输入矩阵、输出矩阵、求主对角线元素之和和求次对角线元素之和。在 `main` 函数中,我们先让用户输入矩阵的大小,再调用上述四个函数,完成矩阵的输入、输出和对角线求和的操作。
阅读全文