Véletlen szám generálása c++-ban?
Szeretnék írni egy olyan programot ami "kitalál" egy számot 0 és 200 között és kér egy számot(amit be kell írni) és eldönti hogy az x-nél nagyobb vagy kisebb és ha nagyobb akkor ez történik ha kisebb az... Már próbáltam ezt a programot a véletlen szám generálásához:
#include <iostream>
using namespace std;
int main()
{
int x = rand();
cout << x;
}
De mindig csak a 41et hozza be. Ezt segítenétek megoldani, hogy mindig mást hozzon be 0 és 200 között. De ha valaki leírja nekem az egéaz programot és elmagyarázza hogy mi a hiba annak nagyon megköszönném. Még csak most kezdtem el programozni és nem tudok sokat ezért kérem hozzáértők véleményét. Még az is érdekelne,hogy ezt a folyamatot( kérjen egy számot, ellenőrizze le hogy jó-e) ezt hogyan kell végteleníteni addig amíg a tippelt szám nem lesz egyenlő a generált számmal. Abban is tudnátok segíteni, hogy azt hogyan lehef megoldani hogy kérjen egy számot a felhasználótol a program és elnevezze mondjuk y nak?
Először is kell egy seed, amit az srand (time(NULL)); függvénnyel tudsz generálni.
aztán 0 és 200 közötti random szám:
int x = rand() % 200;
Itt példa is van:
1.kérdésedre:
#include <ctime>
mainbe pedig a generálás elé:
srand(time(NULL));
mivel az operációs rendszer ad egy fix alapértéket, és annak a bitjeit keveri, ezért minden indításnál ugyanaz lesz az összes szám. Erre megoldás, hogy az "alapértéket" (seed) módosítod, de nem fix értékre, mert ugyanott tartanánk, hanem mondjuk a pontos idő értékére, mert az mindig változik.
2.: ez a rand 0 és nagyon sok között generál, legalább 32ezer... Ezért te csinálhatod azt, hogy maradékos osztást végzel 201!!!!-el
Ha megy a matek, akkor tudhatod, hogy ha 201-el vett osztási maradékot veszel, az lesz 0 és 200 között.
3.: először cin-nel beolvasod a tippet az általad kért y-ba.
ehhez int y;
cin >> y;
kell.
Aztán egy do...while ciklusba rakod.
Ez először mindenképp lefut, és utána ellenőrzi, hogy még mindig igaz-e a feltétel.
Célszerűbb lenne előbb a C++ alapjait elsajátítani. Így soha véget nem érő kérdéseid maradnak, mi meg olvashatjuk minden héten.
Tanulás még senkinek nem ártott.
„Már csak azt nem tudom, hogy milyen paranccsal kér a program a felhasználótól egy számot, amit elnevez y-nak.”
Mi lenne, ha véges-végig elolvasnád az első választ? Bár az már szentigaz, hogy ott nem a program nevezi el a számot, hanem te hozol létre egy y változót, amibe beolvasod a kapott értéket, de ha ló nincs, jó a szamár is...
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!