【发布时间】:2018-07-30 04:53:48
【问题描述】:
我已经为此苦苦挣扎了几个小时,终于让这个方法几乎可以工作,除了它总是超过数组长度的 1 个条目。我该如何解决这个问题?
public static string FillContestArray(string[,] talentCodes)
{
int x = 0;
int y = 0;
for (x = 0; x < talentCodes.Length; x++)
{
for (y = 0; y < talentCodes.Length; y++)
{
Console.WriteLine("Enter contestant's name: ", x + 1);
talentCodes[x,y] = Console.ReadLine();
Console.WriteLine("Enter contestant's talent: ", y + 1);
talentCodes[x,y] = Console.ReadLine();
}
}
return talentCodes[x, y];
}
编辑:人们要求更多细节。下面是其余的代码。我要做的是将数组参赛者传递给此方法 FillContestArray 以填充数组,然后从那里继续。用户决定阵列有多大,如果这完全相关的话。抱歉,缺少详细信息或适当的术语,我是新手。谢谢!
int userInput = 0;
int thisYear, lastYear;
Console.Write("Please enter the number of contestants entered in last year's competition: ");
lastYear = EnterContestants(userInput);
Console.Write("Please enter the number of contestants entered in this year's competition: ");
thisYear = EnterContestants(userInput);
ContestMessage(thisYear, thisYear);
string[,] contestants = new string[thisYear,thisYear];
FillContestArray(contestants);
Console.ReadKey();
}
public static int EnterContestants(int entries)
{
int numbOC;
string numbString;
numbString = Console.ReadLine();
numbOC = Convert.ToInt32(numbString);
return numbOC;
}
【问题讨论】:
-
提示:数组的长度属性只适用于第一个维度。您应该使用排名。
-
您的 x 和 y 在循环内递增。因此,在返回时,您超出了数组的限制
-
您的代码还有其他问题,例如覆盖第二个读取行中的值。
-
您能否详细解释一下代码试图实现的目标?如前所述,代码存在许多问题,如果我们不知道最终目标是什么,我们很难帮助您修复它。
-
@Trevor 我正在尝试使用此方法填充数组。抱歉缺少细节,我对编码很陌生,这是我第一次发帖