Kezdőoldal » Számítástechnika » Programozás » Miért dob a progim kivételt?

Miért dob a progim kivételt?

Figyelt kérdés

using System;


namespace TestApp

{

class Program

{

static void Main(string[] args)

{

int[,] matrix = new int[3, 3];

Random r = new Random();


for (int i = 0; i < matrix.GetLength(0); ++i)//sorok

{

for (int j = 0; j < matrix.GetLength(i); ++j)//oszlopok

{

matrix[i, j] = r.Next(0, 100);

}

}


Console.ReadKey();

}

}

}



Mondjuk nem csodálom, hogy nem működik... Ez is a "híres" Reiter féle könyvből való.


2020. okt. 22. 04:23
 1/9 anonim ***** válasza:
47%
Tán lerohad a szemed, ha elolvasod az exception szövegét, vagy mi? Benne van, hogy mi a hiba meg egy stacktrace, hogy hol.
2020. okt. 22. 04:59
Hasznos számodra ez a válasz?
 2/9 A kérdező kommentje:

Túlcsordúl. Attól még honnan tudjam hogy miért?

De ha esetleg bemásoltad volna valahová és lefutattod, ha MEGNÉZED, akkor rögvest nem írkálsz baromságokat kora reggel kávé előtt.

Jó napot!

2020. okt. 22. 05:16
 3/9 anonim ***** válasza:
++i és ++j helyett használj i++ és j++ inkrementációt
2020. okt. 22. 05:49
Hasznos számodra ez a válasz?
 4/9 anonim ***** válasza:
100%

"Mondjuk nem csodálom, hogy nem működik... Ez is a "híres" Reiter féle könyvből való."


Az a durva, hogy még másolni sem tudsz. Persze, hogy túlcsordul. A könyvben nem is így van benne.


for (int j = 0; j < matrix.GetLength(i); ++j)//oszlopok


Ilyen sor nem szerepel.


Ilyen szerepel:

for (int j = 0; j < matrix.GetLength(1); ++j)

2020. okt. 22. 07:52
Hasznos számodra ez a válasz?
 5/9 anonim ***** válasza:
79%
És azért csordul túl mert, amikor az i-nek kettő lesz az értéke és beér a ciklusba akkor a GetLength(2) lesz, ami ugyebár nem létezik, mert csak 2 dimenziós mátrixod van. De gondolom már Te is rájöttél. A 0 és 1 számokkal azt adod meg, hogy a matrixban hol vagy. Tehát így kepzeld el: int[0,1] matrix
2020. okt. 22. 08:14
Hasznos számodra ez a válasz?
 6/9 A kérdező kommentje:

Utálom ezt mondani, de most nem volt igazam. Tényleg i-t írtam 1-es helyett.

Köszönöm.

2020. okt. 22. 09:02
 7/9 anonim ***** válasza:
77%
Amúgy egy tipp, amivel nagyon sokat tanulgatsz: Ha valami hiba van, akkor a Visual Studioba jobb oldalt az ablak szélére kattints kétszer. Ilyenkor lerak oda egy piros kört és, amikor futtatod akkor ott megáll és attól a ponttól lépésről lépésre követheted, hogy mi történik. Főleg, hogy már intellitracker is bent van. Nagyon sokat lehet belőle tanulni. :)
2020. okt. 22. 14:36
Hasznos számodra ez a válasz?
 8/9 anonim ***** válasza:
65%
Bocs, bal oldalt. ;)
2020. okt. 22. 14:36
Hasznos számodra ez a válasz?
 9/9 anonim ***** válasza:
77%

[link]


Itt van, hogy mire gondolok. Ha futtatásnál abba a metódusba belép akkor megáll. És felül vannak nyilak. Jobbra, balra és lépegethetsz előre, és vissza a kódba. :). Közben akár be lehe rakni a memória táblát is.

2020. okt. 22. 14:42
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, 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!