雨天Zz 发表于 2020-8-31 15:41:21

编码

求矩阵各行元素之和,输入2个正整数m和n(1<=m<=6,1<=n<=6),然后输入矩阵a(m行n列)中的元素,分别求出各行元素之和,并输出。我的编码哪里有问题?
#include <stdio.h>
void main()
{
        int c,i,j,m,n,a;
        int sum=0;
    printf("请输入两个大于等于1小于等于6的数:");
        scanf("%d%d",&m,&n);
        c=m*n;
        printf("请输入%d个数",c);
        for(i=0;i<m;i++)
        {
                for(j=0;j<n;j++)
                {
                        scanf("%d",&a);
                }
        }
        for(i=0;i<m;i++)
        {
       for(j=0;j<n;j++)
           {
                sum=sum+a;
                printf("%8d",sum);
                printf("\n");
           }
        }
}
               

baige 发表于 2020-8-31 15:43:57

本帖最后由 baige 于 2020-8-31 15:46 编辑

看楼下

baige 发表于 2020-8-31 15:45:52

本帖最后由 baige 于 2020-8-31 15:48 编辑

#include <stdio.h>
void main()
{
        int c,i,j,m,n,a;
        int sum=0;
        printf("请输入两个大于等于1小于等于6的数:");
        scanf("%d%d",&m,&n);
        c=m*n;
        printf("请输入%d个数",c);
        for(i=0; i<m; i++)
        {
                for(j=0; j<n; j++)
                {
                        scanf("%d",&a);
                }
        }
        for(i=0; i<m; i++)
        {
                sum = 0;
                for(j=0; j<n; j++)
                {
                        sum=sum+a;
                }
                printf("%8d",sum);
                printf("\n");
        }
}

baige 发表于 2020-8-31 15:46:43

本帖最后由 baige 于 2020-8-31 15:48 编辑

好了,把
printf("%8d",sum);
                printf("\n");
这两行放到外层循环
同时在外层循环里把sum每次初始化为0

baige 发表于 2020-8-31 15:51:55

由于sum是用来求每行的和,要求每进入1行元素是sum应该初始化为0
外层循环用来控制行数的以及输出,内层循环用来实现累加
输出应该放在外层循环里
页: [1]
查看完整版本: 编码