代码之家  ›  专栏  ›  技术社区  ›  Ines Radic

为什么代码不能到达矩阵的最后一列?

  •  0
  • Ines Radic  · 技术社区  · 1 年前

    我不得不用C#编写代码,它应该确定所有偶数列和奇数列的最小值和最大值,但代码根本不包括最后一列,如果矩阵是3*4,这将是奇数。它根本不检查最后一列中的数字。

           `int min_o = Int32.MaxValue;
            int max_o = Int32.MinValue;
            int min_e = Int32.MaxValue;
            int max_e = Int32.MinValue;
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < n; j++)
                {
                    if (j % 2 != 0) 
                    {
                        if (a[i, j] < min_o)
                            min_o = a[i, j];
                        else if (a[i, j] > max_o)
                            max_o = a[i, j];
                    }
                    else 
                        {
    
                            if (a[i, j] < min_e)
                                min_e = a[i, j];
                            else if (a[i, j] > max_e)
                                max_e = a[i, j];
                        }
                }`
    

    max_o min_o 用于奇数列的最大值和最小值,以及 max_e min_e 用于偶数列。

    以下是我的程序的输入和输出示例:

    n: 3
    m: 4
    1 2 3 4
    5 4 6 7
    9 1 7 9
    
    Minimum for odd columns is: 1, maximum for odd columns is: 4Minimum for even columns is: 1, maximum for even columns is: 9
    

    我试着输入4*5矩阵,这样最后一列可以是偶数,因为我想,当最后一列是奇数时可能会有问题,但同样的问题也存在。

    1 回复  |  直到 1 年前
        1
  •  1
  •   Jayendra Awasthi    1 年前

    我想这是因为你在使用 n 在内部for循环而不是 m (假设n是行数,m是列数)

    我应该是

    for (int j = 0; j < m; j++)
    

    不是

    for (int j = 0; j < n; j++)