Kezdőoldal » Számítástechnika » Programozás » C# tömbben keresés?

C# tömbben keresés?

Figyelt kérdés

Egy tömbben meg kellene keresnem az összes 0-ás értéket, és ha létezik ilyen, akkor kiíratnom a képernyőre a közvetlenül ezek előtt és után álló első számot (ha az nem 0), illetve ezeket eltárolni egy listában. (A számokat random generáltatom, és a tömb elemeinek számát pedig a user adja meg.) Ezt hogyan tudom megcsinálni?

pl

2 3 0 3 6 5 0 2

Itt azt kéne visszakapnom, hogy 3 3 5 2.



2021. jan. 20. 11:28
1 2
 1/11 anonim ***** válasza:
Melyik resze okozza a problemat?
2021. jan. 20. 11:36
Hasznos számodra ez a válasz?
 2/11 anonim ***** válasza:
KERESÉS TÉTELE - Index-1, Index+1, IF elágazás ha nem 0. Ennyiből áll kb. :)
2021. jan. 20. 11:37
Hasznos számodra ez a válasz?
 3/11 anonim ***** válasza:
Mutasd az eddigi kódot, és segítünk vagy útmutatást adunk.
2021. jan. 20. 12:00
Hasznos számodra ez a válasz?
 4/11 A kérdező kommentje:
Az egész keresés, totál nem értem hogyan kéne megírnom erre a kódot. Nagyon kezdő vagyok...
2021. jan. 20. 12:01
 5/11 anonim ***** válasza:
Akkor még ne ilyen feladatokat csinálj, ha nagyon kezdő vagy.
2021. jan. 20. 12:10
Hasznos számodra ez a válasz?
 6/11 anonim ***** válasza:

Akkor tanuld meg a programozási tételeket. Ne a konkrét kódot, hanem hogy a ciklus mettől meddig megy és hasonlók, hogy el tudd mondani a saját szavaiddal.

Itt egy C#-ban implementált lista róluk: [link]

Te ne while hanem for ciklust használj, és rakd be a listába az indexet, amikor megtaláltad.

2021. jan. 20. 12:10
Hasznos számodra ez a válasz?
 7/11 anonim ***** válasza:

For ciklussal végigszaladsz a tömbödön, ha tömb[i] == 0, akkor megnézed eltárod az előző(tömb[i-1]) és a következő(tömb[i+1]) elemet, aztán kiírod a ciklus végén az eredményt. Annyi, hogy ne az egész tömbön ugrálj végig hanem csak a második és az utolsó előtti elemen, hogy i-1/i+1 el ne indexeld túl a tömbödet.

Ha nem világos amit írtam, akkor nézz utána a for ciklusnak és érthető lesz.

2021. jan. 20. 12:11
Hasznos számodra ez a válasz?
 8/11 A kérdező kommentje:

Random veletlen = new Random();


Console.WriteLine("Kérem a tömb elemeinek számát: ");

int elemszam = Convert.ToInt32(Console.ReadLine());


int[] tomb = new int[elemszam];


for (int i = 0; i < tomb.Length; i++)

{

tomb[i] = veletlen.Next(0, 11);

Console.WriteLine("\t{0}", tomb[i]);

}


int j = 0;


while (j<tomb.Length && tomb[j] != 0)

{

j++;

}

if (j<tomb.Length)

{

Console.WriteLine("VAN 0-as érték a tömb elemei között, a {0}.helyen.", j+1);

}


Console.ReadKey();


Eddig jutottam, de ez ugye nem jó, mert csak az első 0-át adja meg, illetve annak az indexét.

2021. jan. 20. 12:12
 9/11 anonim ***** válasza:

Na pontosítok, ne a keresés, hanem a kiválogatás tételét használd. De nem az elemet tárolod el, ahol nulla, hanem

- vagy az indexét, és utólag írod ki az index-1, index+1 helyen lévő elemeket,

- vagy az előtte-utána lévő elemeket (feltéve, hogy létezik az az index, azaz nem elé-mögé indexelsz)

2021. jan. 20. 12:20
Hasznos számodra ez a válasz?
 10/11 tabaki ***** válasza:
Hogy haladsz?
2021. jan. 20. 23:51
Hasznos számodra ez a válasz?
1 2

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!