Helppp Wpisuje W Kalkulatorze Litere... zamiast cyfry i konsola szaleje ;/
Ostatnio zmodyfikowano 2011-03-21 17:56
trufel15 Temat założony przez niniejszego użytkownika |
» 2011-03-20 21:52:16 #include <iostream> #include <ctime> #include <cstdlib> using namespace std; int main() { int moja; srand( time( NULL ) ); cout << "Program Losuje Liczbe z Przedzialu od 1 do 1000" << endl; do { cout << "Losowanie.." << endl; ( rand() % 5 ) + 1; do { cout << "Wprowadz Swoja Liczbe.. "; cin >> moja; if( moja > 0 && moja < 6 ) { cout << "Wprowadzono.." << endl; break; } else { cout << "Podales Zla Liczbe..." << endl; break; } } while( true ); int liczba = rand() % 5 + 1; if( liczba == moja ) { cout << "Dobrze ! Zgadles... Trafiles Liczbe: " << liczba << "Strzelales: " << " razy :D" << endl; break; } } while( true ); system( "pause" ); return 0; }
Tak Wyglada Moj Kod... I Chce, by jak wprowadzam litere "a"... To powiadomilo mnie, ze to jest litera a nie liczba... i zatrzymalo funkcje lub zapetlilo ponownie do losowania... Bo w obecnym kodize wprowadzam "a" to mi rejestruje jako liczbe "2" ... |
|
McAffey |
» 2011-03-20 22:26:13 No to w linku który Ci podałem masz sposób jak wykryć czy się podało literę czy cyfrę i po prostu skopiuj to do swojego programu. Masz gotowe rozwiązanie po prostu je wykorzystaj. |
|
trufel15 Temat założony przez niniejszego użytkownika |
» 2011-03-20 22:36:07 McAffey <----
To WKlej Ten Moj Kod Do Swego Kompilatora... I Zobacz Co Sie Dzieje :)
Łatwo Podac Linka I o... Gorzej W Praktyce... |
|
McAffey |
» 2011-03-20 22:44:39 Zrób tak : wpisuj dane jako char, wtedy wykorzystaj kod z linku który Ci podałem aby sprawdzić czy podano liczbę czy literę i jeśli podano literę to po prostu zapętlaj do wpisywania a jeśli cyfrę to wtedy przepisuj znak do jakiegoś int'a i wtedy porównuj. Trochę wysiłku jak ktoś to za Ciebie napisze to się nie nauczysz. |
|
trufel15 Temat założony przez niniejszego użytkownika |
» 2011-03-20 23:06:42 McAffey <---- Sprostowuje......
Nie Wytrzymam.........
Co Do TEj Liczby... To Dobrze Pokazuje, ze źla wprowadzilem, ale i tak przypisuje mi do zmienej <--- jezeli wpisze"a" to przypisuje do niej liczbe 55... Co jest |
|
McAffey |
» 2011-03-20 23:15:56 Zrób tak jak napisałem 2 posty wyżej a będzie Ci działać tak jak chcesz. |
|
ison |
» 2011-03-20 23:30:37 McAffey Twój program sprawdza tylko 1 znak czy jest cyfrą czy znakiem problem można rozwiązać na kilka sposobów, ten nie jest najprostszy ale ważne że działa :p char ch[ MAX ]; scanf( "%s", ch ); size_t len = strlen( ch ); bool liczba = true; for( size_t i = 0; i < len; ++i ) if( ch[ i ] < '0' || ch[ i ] > '9' ) liczba = false;
if( liczba ) { int var; sscanf( ch, "%d", & var ); printf( "Podano liczbe %d\n", var ); } else printf( "Blad\n" );
(nie mam aktualnie pod ręką kompilatora, wygodniej zapewne byłoby zwyczajnie skorzystać z cin.good()) //a, nie doczytałem że liczba nie będzie przekraczać 9 (tak wnioskuję z kodu), rozwiązanie McAffeya też jest dobre |
|
trufel15 Temat założony przez niniejszego użytkownika |
» 2011-03-20 23:31:52 CIezko zrozumiec... Jestem poczatkujacy...
Mozesz napisac przykład ? Chyba tak, by było najlepiej. Dla mnie i dla tych, ktorzy maja taki sam problem :) |
|
1 « 2 » 3 4 5 6 |