在二进制2D数组中查找0的最大矩形

时间:2018-05-15 10:41:34

标签: c

我刚刚开始学习C代码而且我有点坚持这个问题。 所以细节是:

  1. 我需要扫描2个代表我的2D数组尺寸的数字。 (可以)
  2. 需要从0和1的用户那里获得输入,并将它们插入到2D数组的行中。 (不需要处理错误:输入只有1和0以及数组可以包含的确切数字)
  3. 需要在数组中打印0的最大矩形区域。 (如果有一个6 0的矩形,我需要打印6)
  4. 我知道直方图可以帮助我这样做,但我不知道如何将其转换为0的代码。并且2cd步骤也不适合我(代码末尾的打印仅用于检查)

    #include" stdafx.h"

    的#include    #define N 30

    int main()

    {

       printf("Enter dimentions:\n");
    
       int i, j, row, col, Mat[N][N], SumMat[N][N];
       int temp=0, curr;
       scanf("%d %d", &row, &col);
       for (i = 0; i < row; i++) {
           for (j = 0; j < col; j++) {
               scanf("%d", &Mat[i][j]);
           }
       }
        for (j = 0; j < col; j++) {
            for (i = row; i < 0; i--) {
                  if (*Mat[i][j] == 0) {
                      temp += 1;
                      SumMat[i][j] = temp;
                  }
                  else
                  {
                      temp = 0;
                  }
             }
        }
        return 0;
    

    }

    这是我的新代码,我调试它,我看到数组中的值是垃圾值(在我扫描用户输入后),我无法弄清楚为什么会这样。我应该以某种方式使用指针吗? 很高兴任何人检查我的代码

0 个答案:

没有答案