Kezdőoldal » Számítástechnika » Programozás » C# fordított kiírás?

C# fordított kiírás?

Figyelt kérdés

List<int> lista = new List<int>();

Random random = new Random();



int i = 0;

while (i < 10)

{

lista.Add(random.Next(0, 101));

i++;

}


i = 0;

Console.WriteLine("1. feladat: ");


Console.WriteLine("A lista elemei: ");

do

{

Console.Write(lista[i] + " ");

i++;

} while (i < lista.Count);

Console.WriteLine("");

Console.WriteLine("Kiírás fordított sorrendben: ");


// a hiba innen kezdődik


Console.WriteLine(" ");

Console.WriteLine("A lista elemei fordított sorrendbe: ");

i = lista.Count - 1;

do

{

Console.Write(lista[i] + " ");

i--;

} while (i < lista.Count);



2022. okt. 31. 21:09
 1/5 A kérdező kommentje:

A lista elemei fordított sorrendbe:

18 34 17 18 34 53 81 36 20 99

Nem kezelt kivétel: System.ArgumentOutOfRangeException: Az index az engedélyezett tartományon kívül esett. Az index nem lehet negatív, és kisebbnek kell lennie a gyűjtemény méreténél.

Paraméter neve: index

a következő helyen: System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)

a következő helyen: System.Collections.Generic.List`1.get_Item(Int32 index)

a következő helyen: lista_feladatok_1.Program.Main(String[] args) hely: C:\/*valami*/\lista feladatok_1\Program.cs, sor: 102

Press any key to continue . . .



Tehát lefut jól és ki is írja amit kéne, de valami mégsem jó xD.

2022. okt. 31. 21:11
 2/5 A kérdező kommentje:

Ez a 102 sor:

Console.Write(lista[i] + " ");

2022. okt. 31. 21:12
 3/5 anonim ***** válasza:
100%

Mint a hibaüzenetben is látod, valahol kicsúszik az index a tartományból.

Mivel mindent helyesen kiír, ezért feltételezheted, hogy a program végén lesz a hiba.

Amit csinálsz: i = listahossz-1 és ebből vonogatsz le, addig, amíg i < listahossz, ami nyilván mindig igaz lesz, ergo a programod elszáll hibával, mikor i = -1. Megoldás: while i > 0.

2022. okt. 31. 21:29
Hasznos számodra ez a válasz?
 4/5 anonim ***** válasza:
Hogy jobban megértse, a hiba igazából az, hogy hátultesztelős ciklust használ, amiről tudjuk, hogy először lefut a ciklusmag és utána teszteli a feltételt. Ha ezt nem vesszük figyelembe és hagyományos ciklusként tekintünk rá, akkor nyilván ki fog futni az indexből.
2022. nov. 1. 00:28
Hasznos számodra ez a válasz?
 5/5 anonim ***** válasza:

foreach (var element in lista.Reverse())

{

Console.WriteLine(element);

}

2022. nov. 2. 16:09
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!