#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;
}