【发布时间】:2013-11-12 08:27:53
【问题描述】:
如果有人能指出我正确的方向,我将不胜感激。在过去的几个月里,我一直在使用 Murach 的 C# 2013 书学习 C#,这是一本好书,但有时它缺乏某些细节。我一直在使用数组,最后开始使用多维数组,我编写了一个简单的逻辑,其中使用嵌套的“For Loop”将多维数组声明并填充为(4x4)乘法表,该表按预期工作。问题是我现在正在尝试通过使用嵌套的“For Loop”在二维数组中搜索给定的 int 值,并且我想通过遍历所有行和列并获取它的位置来找到 int 值使用数组索引。我已经在这几天了,我在网上搜索但无法找到一个可靠的方向。
目标:一旦乘法表被填充,现在我想在所有列和行中定位“9”。
如果有人能让我继续使用它,那就太棒了。这是我的代码。
//CONSTANT ARRAY LENGTH
const int multiTable = 4;
//ARRAY
int [ , ] multiplicationTableArr =
new int[multiTable, multiTable]; // 4 x 4 table
//MULTIPLICATION METHOD
private void MultiplicationTable
{
int r; //ROW
int c; //COLUMN
int result;
for (r = 0; r < multiplicationTableArr.GetUpperBound(0); r++)
{
//NESTED FOR LOOP
for (c = 0; c < multiplicationTableArr.GetUpperBound(0); c++)
{
result = (r + 1) * (c + 1);
multiplicationTableArr[r, c] = result;
break;
}//NESTED FOR LOOP ENDS
}
}
// SEACHFORVALUE METHOD
private void seachForValue()
{
int r; //ROW
int c; //COLUMN
int intSearchNumber;
txtTable.Clear(); //clear the text box
intSearchNumber = int.Parse(txtSearchNumber.Text);
for (r = 0; r < multiplicationTableArr.GetLength(0); r++)
{
for (c = 0; c < multiplicationTableArr.GetLength(1); c++)
{
if (intSearchNumber == multiplicationTableArr[r,c])
{
txtTable.AppendText(r + ", " + c.ToString());
}
}//NESTED FOR LOOP ENDS
}
}
谢谢。
【问题讨论】:
-
什么不起作用?它会在文本框中显示一些结果吗?
-
我意识到 4x4 不是大桌子,所以我现在将它增加到 12x12。我能够找到 10 以下的任何值,并且我当前的逻辑在表中显示该值一次。所以假设我搜索 12,我知道 12 不止出现一次,但我的逻辑只显示它,好像它只在行和列中出现一次。谢谢。