Kezdőoldal » Számítástechnika » Programozás » Feltöltök egy 20-elemű tömböt...

Feltöltök egy 20-elemű tömböt −1000 és 1000 közötti véletlen egész számokkal. Majd bekér egy egész számot (x). Aztán kiírja azokat a számokat a tömbben levők közül, melyek a [−x, +x ] intervallumba esnek. Hogyan tudnám ezt leprogramozni?

Figyelt kérdés

mi a hiba benne? Az utolsó feltételnél kiirja hogy az index a tömb határain kívül van. Miért?


int[] tomb = new int[20]; //20 elemű tömb


Random rnd = new Random(); //véletlenszám generálás


for (int i = 0; i < 20; i++) //léptetés a 20 elemű tömbön

{

tomb[i] = rnd.Next(-100, 100); //tömb elem feltöltése

Console.WriteLine(tomb[i]);

}

Console.WriteLine("kérek egy számot"); //számbekérés

int bekértszám = int.Parse(Console.ReadLine()); //bekérés


for (int i = 0; i < bekértszám; i++) //végigléptetés a bekért számon


if (tomb[i] > -bekértszám && tomb[i] < bekértszám) //feltétel a + és - közé eső tömbelemek

Console.WriteLine(tomb[i]); //tömbelemek kiiartása



Console.ReadKey();


2010. nov. 17. 21:48
 1/3 anonim ***** válasza:

int[] tomb = new int[20]; //20 elemű tömb


Random rnd = new Random(); //véletlenszám generálás


for (int i = 0; i < 20; i++) //léptetés a 20 elemű tömbön

{

tomb[i] = rnd.Next(-100, 100); //tömb elem feltöltése

Console.WriteLine(tomb[i]);

}

Console.WriteLine("kérek egy számot"); //számbekérés

int bekértszám = int.Parse(Console.ReadLine()); //bekérés


for (int i = 0; i < tomb.Length; i++) //végigléptetés a bekért számon


if (tomb[i] >= -bekértszám && tomb[i] <= bekértszám) //feltétel a + és - közé eső tömbelemek

Console.WriteLine(tomb[i]); //tömbelemek kiiartása



Console.ReadKey();



Vagy itt egy kicsit profibb megoldás LINQ kifejezéssel:



int[] tomb = new int[20]; //20 elemű tömb

Random rnd = new Random(); //véletlenszám generálás

int bekértszám;


for (int i = 0; i < 20; i++) //léptetés a 20 elemű tömbön

{

tomb[i] = rnd.Next(-100, 100); //tömb elem feltöltése

Console.WriteLine(tomb[i]);

}

Console.WriteLine("kérek egy számot"); //számbekérés


if (!int.TryParse(Console.ReadLine(), out bekértszám)) // ha a megadott érték nem érvényes egész szám

{

Console.WriteLine("A megadott érték nem szám!");

Console.ReadKey();

return;

}


var numbersInInterval = from int n in tomb

where n >= -bekértszám && n <= bekértszám

select n; //az intervallumba eső számok lekérdezése LINQ to Object-el


foreach (var item in numbersInInterval)

{

Console.WriteLine(item);

}

2010. nov. 17. 22:51
Hasznos számodra ez a válasz?
 2/3 zsomkovacs ***** válasza:
A második ciklusnak nem 0 és bekértszám, hanem 0 és 19 közt kell futnia. És ha zárt intervallumon keresel, akkor nem <bekértszám, hanem <=bekértszám, valamint >=-bekértszám.
2010. nov. 18. 07:39
Hasznos számodra ez a válasz?
 3/3 A kérdező kommentje:

Köszönöm zsomkovacs!


Valóban csak ennyi volt a hiba, most már működik.

mégegyszer köszi a segítséget

2010. nov. 18. 11:04

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!