#include<stdio.h>
#define M 3
#define N 3
void createMatrix(int matrix[M][N], int m, int n) { /*创建矩阵*/
int i,j;
printf("开始输入矩阵内容(%d行%d列)\n",m,n);
for(i=0;i<m;i++) {
printf("输入第%d行的%d个元素:",i+1,n);
for(j=0;j<n;j++)
scanf("%d",&matrix[i][j]);
}
}
void printMatrix(int matrix[M][N], int m, int n) { /*打印矩阵*/
int i,j;
for(i=0;i<m;i++) {
for(j=0;j<n;j++)
printf("%d\t",matrix[i][j]);
printf("\n");
}
}
void printMatrix_diagonal(int matrix[M][N], int m, int n) { /*打印对角线元素和*/
int i,j;
for(i=0;i<m;i++) {
for(j=0;j<n;j++)
if (i==j||i+j==M-1)
printf("%d\t",matrix[i][j]);
else
printf(" \t");
printf("\n");
}
}
int diagonalSum(int matrix[M][N], int m, int n) { /*求对角线元素和*/
int i,j,sum=0;
for(i=0;i<m;i++) {
for(j=0;j<n;j++)
if (i==j||i+j==M-1)
sum+=matrix[i][j];
}
return sum;
}
int main(void) {
int matrix[M][N];
createMatrix(matrix, M, N);
printf ("======================================================\n\n");
printf ("您输入的矩阵为:\n");
printMatrix(matrix, M, N);
printf ("对角线元素为:\n");
printMatrix_diagonal(matrix, M, N);
printf ("对角线元素之和为:\n");
printf ("%d\n",diagonalSum(matrix, M, N));
return 0;
}
执行结果
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/d1160924ab18972bb3485a80eccd7b899e510a0d?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)