这个问题在这里已有答案:
这有什么问题?我有一个2500块随机数的块,我想用冒号排序它们。但是当我运行程序时,我得到了这个:
System.IndexOutOfRangeException
此后的错误代码:
if (szamok[i] > szamok[i + 1]).
(抱歉英文不好:/)
int r = 2500;
int seged;
while (r > 1)
{
for (int i = 0; i < 2500; i++)
{
if (szamok[i] > szamok[i + 1])
{
seged = szamok[i + 1];
szamok[i + 1] = szamok[i];
szamok[i] = seged;
}
}
r = r - 1;
}
错误说明:您的索引超出范围。您试图在此数组中的最后一个元素之后访问数组中的元素。
线szamok[i] > szamok[i + 1]
似乎是罪魁祸首。 +1太多了。
尝试更改循环,这样您就不会访问最后一个元素,只会访问倒数第二个元素:
for (int i = 0; i < (2500-1); i++)