Was ist das Problem hier? Ich habe einen Block mit 2500 Zufallszahl und ich möchte sie mit Blasensorte sortieren. Aber wenn ich das Programm ausführen Ich habe dies bekam:C# Blasensortierungsfehler?
System.IndexOutOfRangeException
Fehlercode danach:
if (szamok[i] > szamok[i + 1]).
(Sorry für schlechtes Englisch: /)
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;
}
wenn '2500' die Größe der Sammlung ist, die Bedingung in der' for' sollte 'i <2500 - 1; ':' für (int i = 0; i <2500 - 1; i ++) {...} ' –
Was ist der Wert von' i ', wenn die Ausnahme ausgelöst wird und wie viele Einträge gibt es in 'szamok'? Bei einem einfachen Debugging sollte Ihnen mitgeteilt werden, um was für einen ungültigen Index es sich handelt, anhand dessen Sie feststellen können, woher Ihr Problem stammt. – Chris
Wenn Sie 2500 Elemente in einem Array haben, erscheinen sie bei den Indizes 0-2499. Welche Indizes erzeugt Ihr Code das letzte Mal durch seine Schleife, wenn "i" = 2499? –