Problem funkcja goto
Ostatnio zmodyfikowano 2011-03-28 16:53
Elano92 Temat założony przez niniejszego użytkownika |
Problem funkcja goto » 2011-03-28 16:09:18 #include <iostream> #include <cstdlib> #include <ctime> #include <conio.h> using namespace std; int main() { int liczba; int a; poczatek: cout << "traf liczbe" << endl; cin >> a; srand( time( NULL ) ); liczba =( rand() % 9 ) + 1; cout << "Wylosowana: " << liczba << endl; if( a != liczba ) goto poczatek; cout << "nie trafiles ,przykro mi" << endl; else cout << "gratulacje" << endl; getch(); return 0; }
Pomóźcie łatwy programik , ale nie wiem gdzie błąd |
|
McAffey |
» 2011-03-28 16:24:49 Goto nie jest polecanym sposobem (zazwyczaj) spróbuj pozbyć się go i zastosować pętlę. |
|
Elano92 Temat założony przez niniejszego użytkownika |
» 2011-03-28 16:25:12 Do while sugerujesz?
#include <iostream> #include <cstdlib> #include <ctime> #include <conio.h> using namespace std; int main() { int liczba; int a; int b = 0; poczatek: do { cout << "traf liczbe" << endl; cin >> a; srand( time( NULL ) ); liczba =( rand() % 9 ) + 1; cout << "Wylosowana: " << liczba << endl; cout << "nie trafiles spruboj ponownie" << endl; } while( a != liczba ); cout << "gratulacje" << endl; cout << "wykonales prob: " << b + a << endl; system( "pause" ); getch(); return 0; }
Nie podlicza mi ilość prób nie wiem jak się za to zabrać ;/ |
|
McAffey |
» 2011-03-28 16:43:47 #include <iostream> #include <cstdlib> #include <ctime> #include <conio.h> using namespace std; int main() { int liczba; int a; int prob = 1; do { cout << "traf liczbe" << endl; cin >> a; srand( time( NULL ) ); liczba =( rand() % 9 ) + 1; cout << "Wylosowana: " << liczba << endl; if( liczba != a ) { cout << "nie trafiles spruboj ponownie" << endl; prob++; } } while( a != liczba ); cout << "gratulacje" << endl; cout << "wykonales prob: " << prob << endl; getch(); return 0; }
I poco zatrzymywałeś program i getchem i systemową pauzą ? ;p |
|
Elano92 Temat założony przez niniejszego użytkownika |
» 2011-03-28 16:49:20 int prob = 1; Tu ma być wartość 0 to tylko przyuważyłem , bardzo dziękuje za pomoc . Zamykam
|
|
malan |
» 2011-03-28 16:50:33 @McAffey: I po co wywołujesz srand( time( 0 ) ); przy każdym obiegu pętli? ;p |
|
McAffey |
» 2011-03-28 16:53:54 @Elano92 Ma być 1, ponieważ dopiero w pętli zaczyna nabijać, a pierwszą próbę masz przed pętlą. Czyli jak byś ustawił tak jak mówisz int prob = 0; to gdybyś trafił za pierwszym razem to wyświetliło by Ci prób 0. @malan bo tak było w kodzie oryginalnym a ja poprawiłem tylko to, co musiałem aby działało, nie poprawiałem nic biorąc pod uwagę oszczędzanie pamięci czy estetykę kodu ;p |
|
« 1 » |