痛みよ感じろ 2022-05-04 16:23 采纳率: 50%
浏览 503
已结题

分别求一个5×5矩阵的所有行之和、列之和、两条对角线上的元素之和。(输入的数据和输出的数据不一致)

分别求一个5×5矩阵的所有行之和、列之和、两条对角线上的元素之和。

输入的数据,输出后不一致

#include<stdio.h>
#define M 2
int main(){
    int i,j,a[i][j],sum;
    printf("请输入矩阵的各个元素:\n");
    for(i=0;i<M;i++){
        for(j=0;j<M;j++){
            scanf("%d",&a[i][j]);
        }
    }
    printf("输入的矩阵各个元素分别为:\n");
    for(i=0;i<M;i++){
        for(j=0;j<M;j++){
            printf("%d,",a[i][j]);
        }
        printf("\n");
    }
}

请输入矩阵的各个元素:
4 1 4 1
输入的矩阵各个元素分别为:
4,4,
4,1,

  • 写回答

1条回答 默认 最新

  • 痛みよ感じろ 2022-05-04 16:44
    关注

    直接带算式算:

    #include<stdio.h>
    #define M 2
    int main(){
        int i,j,a[i][j],sum,sum1,sum2;
        sum=sum1=sum2=0;
        printf("请输入矩阵的各个元素:\n");
        for(i=0;i<M;i++){
            for(j=0;j<M;j++){
                scanf("%d",&a[i][j]);
            }
        }
        printf("输入的矩阵各个元素分别为:\n");
        for(i=0;i<M;i++){
            for(j=0;j<M;j++){
                printf("%d,",a[i][j]);
            }
            printf("\n");
        }
        for(i=0;i<M;i++){
            sum=0;
            for(j=0;j<M;j++){
                sum+=a[i][j];
            }
            a[i][j]=sum;
            printf("%d",a[i][j]);
        }
        for(i=0,j=0;i<M;i++,j++)
                sum1+=a[i][j];
            for(i=0,j=0;i>M;i--,j++)
                sum2+=a[i][j];
            printf("主对角线上元素的和为:%d\n斜对角线上的元素的和为:%d\n",sum1,sum2);
    }
    
    

    结果如下:
    请输入矩阵的各个元素:
    1 1 1 1
    输入的矩阵各个元素分别为:
    1,1,
    1,1,
    23主对角线上元素的和为:3
    斜对角线上的元素的和为:0

    评论

报告相同问题?

问题事件

  • 系统已结题 5月12日
  • 创建了问题 5月4日