用c语言任意输入一个3行3列的二维数组,求对角元素之和

如题所述

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

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-11-21
dhggfhfhhfhf
相似回答