定位多维数组行中的最大元素

时间:2016-02-08 08:59:40

标签: c++ arrays multidimensional-array

我想在另一列中减去这个5x2矩阵中的最高元素,以及它的后续元素。

对于ex:现在最高元素是150,其位置是(4,1)。我想用 89 减去 150 ,这是它的后续元素。同样地,如果最高元素属于第一列,那么它应该从下一列中的元素中减去它。

谢谢

int big=0,lead=0,m,n;

int a[5][2]={140,82,89,150,110,110,112,106,88,90};

for(int j=0; j<5; j++)
{
    for(int i=0 ; i<2; i++)
    {
        m=j;
        n=i;

        if(a[j][i] > big)

         {
             big = a[j][i];

             if(big == a[j][i])

            {
                 lead = big-a[j][1];
            }

             else

            {
                lead = big-a[1][i];
            }
        }
    }
}

         cout<<big<<"\n"<<lead<<"\n"<<m<<","<<n<<endl;
}

1 个答案:

答案 0 :(得分:0)

我认为您声明数组错误,我将2D数组构建为

    treeView1.DrawMode = TreeViewDrawMode.OwnerDrawAll;

    // cancel changes for marked node:
    treeView1.BeforeCheck += (s, e) 
        => { if (e.Node.Tag != null && e.Node.Tag.ToString() == "X") e.Cancel = true; };

    // a small correction;
    treeView1.AfterExpand += (s,e) => {treeView1.Refresh();};

首先,你想找到最大的使用大变量(我假设)。所以

    treeView1.DrawNode += (s, e)
        =>
        {
            if (e.Node.Tag == null || e.Node.Tag.ToString() != "X")
            { e.DrawDefault = true; return; }

            CheckBoxState cbsChDis = CheckBoxState.CheckedDisabled;
            CheckBoxState cbsUCDis = CheckBoxState.UncheckedDisabled;

            Size glyph = Size.Empty;
            glyph = CheckBoxRenderer.GetGlyphSize(e.Graphics, cbsChDis);

            Rectangle tBounds = e.Node.Bounds;  // the real bounds of the hittest area

            if (e.Node.IsSelected)
            {
                e.Graphics.FillRectangle(SystemBrushes.MenuHighlight, tBounds);
                e.Graphics.DrawString(e.Node.Text , Font, Brushes.White,
                                        tBounds.X , tBounds.Y);
            }
            else
            {
                CheckBoxRenderer.DrawParentBackground(e.Graphics, e.Bounds, this);
                e.Graphics.DrawString(e.Node.Text , Font, Brushes.Black,
                                        tBounds.X , tBounds.Y);
            }

            Point cBoxLocation = new Point(tBounds.Left - glyph.Width , tBounds.Top);
            CheckBoxState bs1 = e.Node.Checked ? cbsChDis : cbsUCDis;
            CheckBoxRenderer.DrawCheckBox(e.Graphics, cBoxLocation, bs1);

        };

这里你保存n和m变量的最大和它的坐标。

之后,你想用列-1减去它(如果列在第一列,则为+ 1列)

int a[2][5] = {
    {140,82,89,150,110},
    {110,112,106,88,90}
};