Hogy lehet tömbből véletlenszerűen számot kiválasztani (C++)?
Intervallumból tudok, de tömbből nem. Úgy szeretném, hogy minden egyes alkalommal más-más számot írjon ki.
A tömb 10 elemű. Kell egy számláló, meg a rand() függvény használata.
Illetve kérdésem még, hogyha nem egy, hanem két számot választunk ki, azokat hogyan lehetne beválogatni egy új tömbbe (akár sorrendben, akár azt is véletlenszerűen)?
Köszönöm szépen.
Pár dolog kimaradt. Tehát kell egy számláló meg a rand() függvény, ezt azért írtam, mert eddig értem.
Tömböt feltölteni már tudok véletlenszerűen számokkal, csak belőlük kiválasztani nem.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
Rand(x);
array[x];
Gondolkozni kéne.
A Rand függvény intervalluma 0-9, az általa generált int tipus pedig a tömb indexe.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
Ha van egy tömböd, amibe megvannak az értéket pl:
int tmb[10]={1,2,3,4,5,6,7,8,9,10};
akkor, hogy ebből generálj véletlen számot, akkor ugyanúgy egy "random" számot kell generáolnod, viszont ezt a random számot amit generáltál a tömb indexébe adod meg. Mert ugyebár ha megadom ezt: tmb[2] akkor ez a tömb 3. eleme ami tmb[2] = 3; (Ezt a 2-es számot mondjuk te generáltad le)
int veletlenszam = tmb[rand() % 5];
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
Anélkül, hogy különösebben értenék hozzá: Nekem a #6 hsz programjából hiányzik a véletlenszám-generátor randomizálása – így mindig ugyanolyan sorrendben kever. Ezenkívül, az „úgy szeretném, hogy minden egyes alkalommal más-más számot írjon ki” kifejezésből nekem az jön le, hogy maximum a tömb méretének megfelelő számú kiválasztás lehet, anélkül, hogy egy-egy tömbelem ismételten választható lenne. Erre egy egyszerű (bár emiatt talán nem a leghatékonyabb) megoldás, ha egy másik tömbben, vagy kétdimenziós tömb másik indexén, vagy például struct adattömb erre szolgáló mezőiben könyveled, hogy az adott elem sorra került-e már, és ha igen, újra próbálkozol. Itt vannak az én kísérleteim:
A nem egy, hanem két kiválasztott szám új tömbbe válogatásával kapcsolatos szándékodat nem egészen értem.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
Változó, ami random értéket kap a random() függvénnyel, de maximum a tömb mérete lehet. Majd kiíratjuk a tömb "randomadik" értékét:
tomb[num]; //num a random érték
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!