我收到了错误"索引超出了数组的范围"。我从我的教科书中输入的这段代码。似乎没有发现任何问题。
class Program
{
static void Main()
{
int[] scores = new int[8];
int x;
string inputString;
for (x = 0; x < scores.Length; ++x)
{
Write("Enter your score on test {0} ", x + 1);
inputString = ReadLine();
scores[x] = Convert.ToInt32(inputString);
}
WriteLine("\n----------------------------");
WriteLine("Scores in original order: ");
for(x = 0; x < scores.Length; ++x)
Write("{0, 6}", scores[x]);
WriteLine("\n----------------------------");
Array.Sort(scores);
WriteLine("Scores in sorted order: ");
for(x = 0; x < scores.Length; ++x)
Write("{0, 6}", scores[x]);
WriteLine("\n----------------------------");
Array.Reverse(scores);
WriteLine("Scores in reverse order: ");
for(x = 0; x < scores.Length; ++x) ;
Write("{0, 6}", scores[x]);
}
}
}
答案 0 :(得分:5)
你有一个额外的分号
for (x = 0; x < scores.Length; ++x) ;
Console.Write("{0, 6}", scores[x]);
for
循环运行,除了将x
增加到最终值8之外什么都不做。然后下一行运行x
仍然具有之前的值,恰好是8。
要解决此问题,请删除额外的;
。