lekcja 16
Ostatnio zmodyfikowano 2021-04-20 12:33
monikaw Temat założony przez niniejszego użytkownika |
lekcja 16 » 2021-04-19 11:38:50 Zrobiłam zadanie z lekcji 16. Wszystko mi działa, nie mogę tylko przeskoczyć jednej małej rzeczy. Otóż po wpisaniu litery pojawia mi się komunikat ,,Podaj cyfre nie litere", jednak poniżej tego komunikatu pojawia mi się również ,,Podałeś za małą liczbę. Próbuj dalej". Jak zabezpieczyć żeby przy podaniu litery nie pojawiał mi się komunikat o zbyt małej liczbie. #include <iostream> #include <cstdlib> #include <ctime> #include <limits> using namespace std; int main() { srand( time( NULL ) ); float liczba; int los =(( rand() % 100 ) + 1 ); int proby = 0; do { proby++; cout << "Zgadnij liczbe: "; cin >> liczba; if( cin.good() == false ) { cout << "\nPodaj cyfre nie litere!" << endl << endl; } cin.clear(); cin.ignore( numeric_limits < streamsize >::max(), '\n' ); if( liczba < los ) { cout << "\nPodales za mala liczbe. Probuj dalej" << endl << endl; } if( liczba > los ) { cout << "\nPodales za duza liczbe. Probuj dalej" << endl << endl; } } while( liczba != los ); cout << "\nBrawo! Wylosowana liczba to: " << los << endl << endl; cout << "\nUdalo Ci sie za " << proby << " razem." << endl << endl; return 0; }
|
|
pekfos |
» 2021-04-19 17:21:34 Przetwarzasz liczbę nawet gdy nie udało się jej wczytać. Gdzieś tam powinno być else. |
|
monikaw Temat założony przez niniejszego użytkownika |
» 2021-04-20 11:17:59 Próbowałam z else po cin.ignore ale nic to nie pomaga. Po cin.ignore nie moge dać else, a jeśli dam else po pierwszym if to program się odpala w nieskończoność. |
|
nanoant20 |
» 2021-04-20 12:33:58 do { cout << "Zgadnij liczbe: "; cin >> liczba; ++proby; if( cin.good() == false ) { cout << "\nPodaj cyfre nie litere!" << endl << endl; std::cin.clear(); std::cin.ignore( std::numeric_limits < std::streamsize >::max(), '\n' ); --proby; } else if( liczba < los ) { cout << "\nPodales za mala liczbe. Probuj dalej" << endl << endl; } else if( liczba > los ) { cout << "\nPodales za duza liczbe. Probuj dalej" << endl << endl; } } while( liczba != los );
cout << "\nBrawo! Wylosowana liczba to: " << los << endl; cout << "\nUdalo Ci sie za " << proby << " razem." << endl; getchar(); return 0;
|
|
« 1 » |