Kezdőoldal » Számítástechnika » Programozás » C# tömb segítség kellene....

C# tömb segítség kellene. Hogyan oldjam meg?

Figyelt kérdés
Egy 2 dimenziós karaktertömbben kell megkeresnem egy karaktert, ha nincs benne, akkor pedig ki kell íratnom azt hogy nincs, stb...nem is ezzel van baj, ez a része megy, de meg kell keresnem az indexét a helynek ahol van, és az Array.IndexOf csak 1 dimenziós tömbre működik. Hogyan tudnám többD-ben megkeresni az indexét?

2012. dec. 11. 18:22
 1/6 anonim ***** válasza:

2 egymásba ágyazott for ciklussal.

ellenőrzöd, hogy a tomb[i,j] megegyezik-e azzal a karakterrel, ha igen, akkor kiírod az i-t és a j-t.

2012. dec. 11. 19:37
Hasznos számodra ez a válasz?
 2/6 A kérdező kommentje:

Megnéztem ezzel a módszerrel:


for (int i = 0; i <= 9; i++)

{

for (int f = 0; f <= 4; f++)

{

if (bill[i, f] == b)

{

Console.WriteLine("A megadott billentyű a következő helyen található: ({0};{1}) ", i, f);

}

else

{

Console.WriteLine("A megadott karakter nem található. Biztos hogy a-z halmazban van és nem ékezetes?");

}

}

}


Szintaktikai hibát nem ír (semmi mást sem).

2012. dec. 11. 20:35
 3/6 A kérdező kommentje:
Érdekes, hogy az i változó hivatott a sorokat, az f az oszlopokat reprezentálni, és kezdetben a char tömböm [9,4]-es, de ha 9-ig megy az első for ciklus, akkor IndexOutOfRange-t ad be. Ez miért van? Mellesleg nincs ötletem hogy miért nem fut le a program, mindig az else ágba ugrik át és azt írja ki. Ötletek még?
2012. dec. 11. 20:44
 4/6 anonim ***** válasza:

Egy vektorral(egy dimenziójú tömb) elmagyarázom neked az indexelést.

Namármost, ha deklarálsz egy tömböt 10 elemmel, akkor az utolsó eleme a 9. helyen lesz, az első a 0. tehát:

0,1,2,3,4,5,6,7,8,9 (ez a 10 elemű tömb)

Ha a ciklus addig megy, amíg i <= 10, akkor ha i = 10, akkor is lefut a ciklus, és a 10. indexre szeretne hivatkozni, ami már a (magyar számolás szerint) a 11. lenne, ami nincs.


a helyes megoldás i < 10, mert ilyenkor ha i < 10 akkor lefut, tehát 9-nél lefut (annyiadik elem van), de ha már 10, akkor nem fog lefutni.


Cseréld ki a <= -t <-re és működik


A második kérdésedre nem tudok válaszolni:

A b az milyen változó? a bill az milyen tipusú tömb, kellene az egész program, ha gondolod küldd át üzenetbe, és átnézem.

2012. dec. 11. 21:25
Hasznos számodra ez a válasz?
 5/6 anonim ***** válasza:

Az előző válasz azthiszem mindent megmagyaráz, annyival egészítenék, hogy nálad ilyesminek kellene kinéznie az algoritmusnak:


-két egymásba ágyazott ciklus, ahol a ciklusváltozó kisebb, mint <tömbnév>.GetLenght(<dimenzió 0.-tól számolva>)

-ha van találat akkor kiírod, ha nincs, akkor azt.

2012. dec. 11. 21:32
Hasznos számodra ez a válasz?
 6/6 A kérdező kommentje:
Megoldottam! Működött a módszer amit írtál, köszönöm hogy elmagyaráztad. Mellesleg a "b" változó a képernyőről bekért karakter típus, a bill pedig a 2dimenziós karakter típusú tömb amiben a változók vannak. A lényeg hogy megy és értem is miért/hogyan. Zöldek mentek! Köszönöm a segítséget!
2012. dec. 12. 17:30

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!