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

 我来答
billykidd
2018-11-21 · TA获得超过152个赞
知道小有建树答主
回答量:300
采纳率:80%
帮助的人:103万
展开全部
#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;
}
百度网友9464d1f
2018-11-21
知道答主
回答量:62
采纳率:0%
帮助的人:6万
展开全部
dhggfhfhhfhf
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式