[Lekcja 16} Problem z jednorazowym sprawdzaniem warunku
Ostatnio zmodyfikowano 2012-09-16 15:02
Chudziak Temat założony przez niniejszego użytkownika |
[Lekcja 16} Problem z jednorazowym sprawdzaniem warunku » 2012-09-15 19:54:05 Witam. Chce odrobic zd z lekcji 16 jednak mam problem. Program sprawdza tylko w pierwszym fragmencie czy liczba nie wykracza z przedzialu 1-100. Gdy wpisze liczbe ktora wykracza poza zakres np 900 z godnie z moja wola pokaze sie komunikat "Wpisales liczbe spoza zakresu losowania.Podaj prawidlowa liczbe", lecz gdy podam liczbe ,ktora nie wykracza poza zakres np 90 a nastepnie znow ,ktora wykracza nie pokazuje go,a jedyne info ze liczba jest za duzo/mala. Jak zrobic by program sprawdzal czy liczba jest odpowiednia niezaleznie od kolejnosci wpisywania? #include <iostream> #include <cstdlib> #include <ctime> #include <conio.h>
using namespace std;
int main() { srand( time( NULL ) ); int wylosowana =( rand() % 100 ) + 1; int wprowadzona; int proby = 0; cout << "Program wylosowal liczbe od 1 do 100. Sproboj ja odgadnac" << endl; cin >> wprowadzona; do { if( wprowadzona <= 0 || wprowadzona > 100 ) { cout << "Wpisales liczbe spoza zakresu losowania.Podaj prawidlowa liczbe" << endl; cin >> wprowadzona; } else continue; } while( wprowadzona <= 0 || wprowadzona > 100 ); do { if( wprowadzona < wylosowana ) cout << "Liczba jest za mala" << endl; else cout << "Liczba jest za duza" << endl; proby++; cout << "Sproboj jeszcze raz" << endl; cin >> wprowadzona; } while( wprowadzona != wylosowana ); cout << "Gratulacje,trafiles. Twoja ilosc strzalow to: " << proby + 1 << endl; system( "PAUSE" ); return( 0 ); }
|
|
withelm |
» 2012-09-15 22:59:35 ponieważ sprawdzasz czy 'wprowadzona' tylko jeden raz ;)
ups, sorki |
|
Chudziak Temat założony przez niniejszego użytkownika |
» 2012-09-15 23:01:15 Właśnie wiem,ze tak jest i tak tez napisalem-pytam sie jak przeksztalcic ten kod aby sprawdzalo za kazdym razem. |
|
Jurek |
! » 2012-09-15 23:28:23 sproboj ten
#include <iostream> #include <cstdlib> #include <ctime> #include <conio.h>
using namespace std;
int main() { srand( time( NULL ) ); int wylosowana =( rand() % 100 ) + 1; int wprowadzona; int proby = 1; cout << "Program wylosowal liczbe od 1 do 100. Sproboj ja odgadnac" << endl; cin >> wprowadzona; do { if(wprowadzona>wylosowana)
{cout<<"za duza"<<endl; if(wprowadzona>100) cout<<"poza zakresem"<<endl; } else { cout<<"za mala"<<endl; if(wprowadzona<=0) cout<<"spoza zakresu"<<endl; }
++proby; cin>>wprowadzona; }while(wprowadzona!=wylosowana); cout<<"zgadles, ta liczba to: "<<wylosowana<<endl; cout<<"proby: "; cout<<proby;
return 0 ; }
|
|
Jurek |
ten powinien byc jeszcze lepszy » 2012-09-15 23:57:59 #include <iostream> #include <cstdlib> #include <ctime> #include <conio.h>
using namespace std;
int main() { srand( time( NULL ) ); int wylosowana =( rand() % 100 ) + 1; int wprowadzona; int proby = 1; cout << "Program wylosowal liczbe od 1 do 100. Sproboj ja odgadnac" << endl; cin >> wprowadzona; do { if(wprowadzona>100 or wprowadzona<=0) cout<<"poza zakresem"<<endl; else { if(wprowadzona>wylosowana) cout<<"za duza"<<endl; else cout<<"za mala"<<endl; } ++proby; cin>>wprowadzona; }while(wprowadzona!=wylosowana); cout<<"zgadles, ta liczba to: "<<wylosowana<<endl; cout<<"Proby: "<<proby;
return 0 ; }
|
|
yoogi |
» 2012-09-16 08:26:17 Kod umieszczać pomiędzy znaczniki [ c p p ] kod [ / c p p ] |
|
m4tx |
» 2012-09-16 09:52:28 |
|
Chudziak Temat założony przez niniejszego użytkownika |
Dzięki » 2012-09-16 15:02:15 Dzięki,wszystko działa,temat mozna zamknac. Dla potomnych: Program zmodyfikowalem tak,aby liczby spoza zakresu nie byly wliczane doogolnej ilosci strzalow. I jeszcze nie wiem dlaczego, ale MV C++ Express nie obsluguje operatora"or" i musialem go zastapic "||". Kod: #include <iostream> #include <cstdlib> #include <ctime> #include <conio.h>
using namespace std;
int main() { srand( time( NULL ) ); int wylosowana =( rand() % 100 ) + 1; int wprowadzona; int proby = 1; cout << "Program wylosowal liczbe od 1 do 100. Sproboj ja odgadnac" << endl; cin >> wprowadzona; do { if( wprowadzona > 100 || wprowadzona <= 0 ) { cout << "Liczba jest poza zakresem." << endl; proby--; } else { if( wprowadzona > wylosowana ) cout << "Liczba jest za duza" << endl; else cout << "Liczba jest za mala" << endl; } proby++; cin >> wprowadzona; } while( wprowadzona != wylosowana ); cout << "zgadles, ta liczba to: " << wylosowana << endl; cout << "Proby: " << proby; system( "PAUSE" ); return( 0 ); }
|
|
« 1 » |