所以我有一个5乘6的二维数组(A)。从这个数组(A)我想根据用户输入的行和列返回一个值。我到目前为止......
private int FindValue(int[,] A, int row, int col)
{
richTextBox1.Clear();
for (int i = 0; i < row; i++)
{
for (int j = 0; j < col; j++)
{
if (A[i, j] == A)
{
return A[i, j];
}
}
}
return -1;
}
private void button3_Click(object sender, EventArgs e)
{
int row = int.Parse(textBox1.Text);
int col = int.Parse(textBox2.Text);
}
答案 0 :(得分:2)
如果用户同时输入row
和col
,则无需搜索;不需要循环。您只需要根据数组的限制检查输入的数组坐标,并在正确时返回A[row,col]
,或者在错误时返回-1
:
private int FindValue(int[,] A, int row, int col) {
if (row < 0 || row >= 5 || col < 0 || col >= 6) return -1;
return A[row, col];
}
如果您在数组中搜索值(即用户输入X
,并告诉他们row
和col
)那么您会需要两个循环,将A[row,col]
与X
进行比较,如果找到匹配项,则将row
和col
返回给用户。
答案 1 :(得分:2)
不确定为什么要检查
if (A[i, j] == A)
而你只需返回:
private int FindValue(int[,] A, int row, int col)
{
if (row >= 0 && row < A.GetLength(0) && col >= 0 && col < A.GetLength(1))
return A[row, col];
else
return -1;
}
答案 2 :(得分:0)
更新:如果你想从A [,]中获取值,你不需要循环。 A[i,j]
就足够了。另外不要忘记数组索引以0开头。