[C++] rand() i zabawa w "zgadywanie liczb"
Ostatnio zmodyfikowano 2010-06-09 20:56
SeaMonster131 Temat założony przez niniejszego użytkownika |
[C++] rand() i zabawa w "zgadywanie liczb" » 2010-06-09 20:03:17 Mam taki mały i zapewne prosty problem. Chce wylosować liczbe :D zrobiłem to tak: #include <iostream> #include <stdlib.h>
using namespace std;
int main() { int i = 0; i = rand() % 20; cout << i << endl; return 0; } Lecz zawsze i = 1... a jeśli zamiast 20 dam więcej niż 41 to "wylosowana" liczba to 41... Szukałem w google ale nie mogłem nigdzie znaleźć oprócz tego, że przeczytałem o srand() lub coś takiego... |
|
ison |
» 2010-06-09 20:07:01 na początku programu wywołaj funkcję |
|
lenrokskate |
» 2010-06-09 20:09:19 << sorry, jednak działa >> |
|
ison |
» 2010-06-09 20:09:54 możesz mi wytłumaczyć lenrokskate? przecież NULL jest zdefiniowane jako 0 |
|
SeaMonster131 Temat założony przez niniejszego użytkownika |
» 2010-06-09 20:16:16 Heh, dzięki za pomoc :D Faktycznie to łatwe było...dla Was... ;) |
|
szyx_yankez |
» 2010-06-09 20:19:25 Masz tu funkcję odpowiedzialną za losowanie. int losuj( int min, int max ) { return( rand() %( max + 1 - min ) ) + min; }
|
|
SeaMonster131 Temat założony przez niniejszego użytkownika |
» 2010-06-09 20:37:19 A jak napisać takie jakby "zgadywanie liczb"? Zrobiłem tak: #include <iostream> #include <stdlib.h>
using namespace std;
int main() { srand( time( 0 ) ); int i = 0; int e = 0; i = rand() % 100; do { cout << "Jaka to liczba? >> "; cin >> e; } while( e != i ); if( e = i ) { cout << "Tak! To ta liczba!" << endl; } if( e < i ) { cout << "Za malo!"; } if( e > i ) { cout << "Za duzo!"; } return 0; } Tylko że nie wyświetla sie te "za dużo" albo "za mało" itd... |
|
szyx_yankez |
» 2010-06-09 20:47:35 Bo Ci się to nigdy nie wyświetli gdyż: masz pętle do while która trwa dopuki wylosowana liczba = liczba podana przez gracza, gdy spełni się ten warunek wychodzi z pętli i w takim wypadku zostanie spełniony tylko warunek : if( e = i ) { cout << "Tak! To ta liczba!" << endl; }
Aby osiągnąć to co chcesz musisz te trzy warunki na końcu programu wsadzić do pętli do while. Czyli: #include <iostream> #include <stdlib.h>
using namespace std;
int main() { srand( time( 0 ) ); int i = 0; int e = 0; i = rand() % 100; do { cout << "Jaka to liczba? >> "; cin >> e; if( e = i ) { cout << "Tak! To ta liczba!" << endl; } if( e < i ) { cout << "Za malo!"; } if( e > i ) { cout << "Za duzo!"; } } while( e != i ); return 0; }
|
|
« 1 » 2 |