Kezdőoldal » Számítástechnika » Programozás » Véletlen szám generálása c++-ban?

Véletlen szám generálása c++-ban?

Figyelt kérdés

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?



2018. dec. 12. 21:08
 1/6 anonim ***** válasza:

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:

[link]

2018. dec. 12. 21:13
Hasznos számodra ez a válasz?
 2/6 anonim ***** válasza:

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.

2018. dec. 12. 21:56
Hasznos számodra ez a válasz?
 3/6 A kérdező kommentje:
Az esdigi válaszokat nagyon szépen köszönöm. 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
2018. dec. 12. 22:10
 4/6 anonim ***** válasza:
Az mondjuk elég extrém.
2018. dec. 12. 22:23
Hasznos számodra ez a válasz?
 5/6 anonim ***** válasza:
100%

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.

2018. dec. 12. 23:31
Hasznos számodra ez a válasz?
 6/6 tabaki ***** válasza:

„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...

2018. dec. 13. 12:22
Hasznos számodra ez a válasz?

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!