Kolejny problem - mieszanka lekcji
Ostatnio zmodyfikowano 2011-02-19 11:27
Yakuzaf Temat założony przez niniejszego użytkownika |
Kolejny problem - mieszanka lekcji » 2011-02-19 11:11:25 Znów mam problem. Chciałem zrobić ładny kalkulator z menu. Problem jest taki, że kiedy np. wpisuję 2 i enter (co odpowiada za część kalkulatora w której się odejmuje) to cały czas zaczyna od 1. Wygląda to tak: 1 Dodawanie 2 Odejmowanie 3 Mnozenie 4 Dzielenie 5 Rezygnuj Kiedy wpisuję 2, wyskakuje: Podaj 1 liczbe: WPISUJĘ Podaj 2 liczbe: WPISUJĘ I tu wychodzi dodawanie czyli x+y, a nie x-y. A tu kod: #include <iostream> #include <conio.h>
int main() { int a = 1; int b = 2; int c = 3; int d = 4; int e = 5; int f; int g; int liczba; std::cout << "Kalkulator \n [1] Dodawanie \n [2] Odejmowanie \n [3] Mnozenie \n [4] Dzielenie \n [5] Rezygnuj " << std::endl; std::cin >> liczba; if( liczba = 1 ) switch( a ) { case 1: std::cout << "\n\b Podaj pierwsza liczbe" << std::endl; std::cin >> f; std::cout << "\n\b Podaj druga liczbe" << std::endl; std::cin >> g; std::cout << "\n\b Wynik to: " << f + g << std::endl; break; } if( liczba = 2 ) switch( b ) { case 2: std::cout << "\n\b Podaj pierwsza liczbe" << std::endl; std::cin >> f; std::cout << "\n\b Podaj druga liczbe" << std::endl; std::cin >> g; std::cout << "\n\b Wynik to: " << f - g << std::endl; break; } if( liczba = 3 ) switch( c ) { case 3: std::cout << "\n\b Podaj pierwsza liczbe" << std::endl; std::cin >> f; std::cout << "\n\b Podaj druga liczbe" << std::endl; std::cin >> g; std::cout << "\n\b Wynik to: " << f * g << std::endl; break; } if( liczba = 4 ) switch( d ) { case 4: std::cout << "\n\b Podaj pierwsza liczbe" << std::endl; std::cin >> f; std::cout << "\n\b Podaj druga liczbe" << std::endl; std::cin >> g; std::cout << "\n\b Wynik to: " << f / g << std::endl; break; } if( liczba = 5 ) switch( f ) { case 4: std::cout << "\n\b Koniec" << std::endl; } getch(); return 0; }
|
|
DejaVu |
» 2011-02-19 11:15:42
W kursie było napisane, że znak = w operacji porównania jest częstym błędem popełnianym przez początkujących programistów. Ciebie to również dotknęło.
PS. Robienie switch ... case dla jednego przypadku nie ma najmniejszego sensu. |
|
Yakuzaf Temat założony przez niniejszego użytkownika |
» 2011-02-19 11:19:16 Czyli mam dodać jedną zmienną 0, a resztę poprawić na if( 1 > 0 ) , if( 2 > 0 ) itp? Czy jakoś inaczej? |
|
DejaVu |
» 2011-02-19 11:27:15 |
|
« 1 » |