我想在另一列中减去这个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;
}
答案 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}
};