【问题标题】:Read a matrix, output all the ​ (i, j)​ pairs where the sum of ith row is equal to jth column读取一个矩阵,输出第i行之和等于第j列的所有​ (i, j)​对
【发布时间】:2020-04-24 13:04:05
【问题描述】:

读取一个矩阵,输出第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;    
}

我的意见:

Enter the number of rows(r):3
Enter the number of columns(c):4
a[0][0]:1
a[0][1]:2
a[0][2]:14
a[0][3]:8
a[1][0]:2
a[1][1]:4
a[1][2]:3
a[1][3]:4
a[2][0]:15
a[2][1]:7
a[2][2]:8
a[2][3]:-5

我的输出:

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

此外,此代码不适用于其他输入案例。想不出任何错误。

【问题讨论】:

  • 示例输入缺少维度设置部分。
  • 尺寸可以是用户指定的任何尺寸
  • 请在运行代码时剪切并粘贴您的实际输入和输出(并将其添加到问题中,而不仅仅是您打算输入的输入数组)。
  • @Alpha 我明白这一点,但是您的程序希望首先设置在您的示例输入中没有发生的维度,因此它不是一个完整的示例。我知道你可以说它可以通过查看来推断,但谁知道你可能只是交换了它们或其他需要的东西。也为了可复制性。
  • 您在循环末尾使用了另一个 i++j++,这是错误的。变量在每次迭代结束时已经递增一次。

标签: c arrays


【解决方案1】:

在计算sum_c 的for 循环中,您将j 计数到r 而不是c

编辑: 你也有太多的增量:i++j++ 在各自的求和循环中都出现了两次。删除 sum_rsum_c 循环中的独立增量。

【讨论】:

  • 您是说更改代码后仍会出现额外(错误)输出吗?或者问题中的代码是新手写的,而不是您实际代码的剪切粘贴?
  • 我检查了我的算法过程,发现 for 循环条件位发生了变化,但它仍然给出了错误的输出
  • 最后输入的是-5 还是5?请显示完整的示例输入和输出,以便我们更好地了解正在发生的事情。
猜你喜欢
  • 1970-01-01
  • 2019-02-18
  • 1970-01-01
  • 1970-01-01
  • 2021-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-06
相关资源
最近更新 更多