C#,定义一个二维数组 int[,] djs_status = new int[6, 3] { { 6000, 14, 26 }, { 5000, 13, 27 }, { 4000, 11, 29 }, { 3000, 9, 31 }, { 2000, 7, 33 }, { 1000, 5, 35 } };
int _intA = 0;//取值范围在200-6000之间,不会超出这个范围。
想问下,假如_intA 等于随机取在200-6000的范围中,如_intA = 1800;在数组中如何向上取到2000所在的位置7和33,
再比如_intA = 1500,如何取到1000的所在位置的5和35呢?
可以使用循环遍历数组,找到第一个小于等于_intA 的元素,然后取该元素所在的行和列。
int row = -1;
int col = -1;
for (int i = 0; i < djs_status.GetLength(0); i++)
{
if (_intA >= djs_status[i, 0])
{
row = i;
col = _intA >= djs_status[i, 1] ? 1 : 2;
break;
}
}
if (row != -1 && col != -1)
{
int value1 = djs_status[row, col];
int value2 = djs_status[row, 3 - col];
Console.WriteLine("位置:{0},{1}", row + 1, col == 1 ? 7 : 35);
Console.WriteLine("值:{0},{1}", value1, value2);
}
else
{
Console.WriteLine("没有找到符合条件的元素。");
}
其中,row 表示找到的行数,col 表示找到的列数,如果找不到符合条件的元素,则 row 和 col 均为 -1。在找到符合条件的元素后,根据列数判断是第二列还是第三列,从而确定所在的位置和值。