读取矩阵,输出第i行之和等于第j列的所有(i,j)对

问题描述 投票:0回答:1

读取矩阵,输出第i行之和等于第j列的所有(i,j)对。

示例:

输入:

1   2  14  8
2   4  3   4
15  7  8  -5

输出:

((1,1),(0,2),(2,2)// //任意顺序

代码:

#include <stdio.h>
#define max 50

int main()
{
    int i=0, j=0, r, c; 
    int arr[max][max], sum_r[max], sum_c[max];
    printf("Enter the number of rows(r):");
    scanf("%d",&r);
    printf("Enter the number of columns(c):");
    scanf("%d",&c);

    for(i=0;i<r;i++)
    {
        for(j=0;j<c;j++)
        {
            printf("a[%d][%d]:",i,j);
            scanf("%d",&arr[i][j]);
        }
    }

    for(i=0;i<r;i++)
    {
        sum_r[i]=0;
        for(j=0;j<c;j++)
        {
            sum_r[i] = sum_r[i] + arr[i][j];
        }
        i++;
    }

    for(j=0;j<c;j++)
    {
        sum_c[j]=0;
        for(i=0;i<r;i++)
        {
            sum_c[j] = sum_c[j] + arr[i][j];
        }
        j++;
    }

    for(i=0;i<r;i++)
    {
        for(j=0;j<c;j++)
        {
            if(sum_r[i]==sum_c[j]) printf("(%d,%d)",i,j);
        }
    }

    return 0;    
}

我的输出:

((0,2)(1,1)(1,3)(2,2)//额外(1,3)为什么??

此外,此代码不适用于其他输入情况。无法找出任何错误。

c arrays
1个回答
0
投票
在用于计算sum_c的for循环中,仅将j最多计为r,而不是c
© www.soinside.com 2019 - 2024. All rights reserved.