Lekcja / Rozdział 15 - zadanie 2.
Ostatnio zmodyfikowano 2016-06-28 18:53
DanieI Temat założony przez niniejszego użytkownika |
Lekcja / Rozdział 15 - zadanie 2. » 2016-06-28 18:31:11 Chciałem zapytać dlaczego w poniższym kodzie "obecnywynik" cały czas wynosi "1". Mnie chodzi o to aby po wykonaniu działania "obecnywynik" był równy "wynik" -owi. Tak więc proszę o pomoc. #include <iostream> int main() { int obecnywynik = 1; int wprowadzonaliczba; int znak; int wynik; do { std::cout << "Obecny wynik: " << obecnywynik << std::endl; std::cout << "Podaj liczbe: " << std::endl; std::cin >> wprowadzonaliczba; if( wprowadzonaliczba != 0 ) { std::cout << "Wybierz dzialanie: " << std::endl; std::cout << "[1] Dodawanie" << std::endl; std::cout << "[2] Odejmowanie" << std::endl; std::cout << "[3] Mnozenie" << std::endl; std::cout << "[4] Dzielenie" << std::endl; std::cout << "[5] Rezygnuj" << std::endl; std::cin >> znak; if( znak != 0 ) { switch( znak ) { case 1: std::cout << obecnywynik << "+" << wprowadzonaliczba << "=" << obecnywynik + wprowadzonaliczba << std::endl; wynik = obecnywynik + wprowadzonaliczba; break; case 2: std::cout << obecnywynik << "-" << wprowadzonaliczba << "=" << obecnywynik - wprowadzonaliczba << std::endl; wynik = obecnywynik - wprowadzonaliczba; break; case 3: std::cout << obecnywynik << "*" << wprowadzonaliczba << "=" << obecnywynik * wprowadzonaliczba << std::endl; wynik = obecnywynik * wprowadzonaliczba; break; case 4: std::cout << obecnywynik << "/" << wprowadzonaliczba << "=" << obecnywynik / wprowadzonaliczba << std::endl; wynik = obecnywynik / wprowadzonaliczba; break; case 5: std::cout << "Zrezygnowales" << std::endl; break; default: std::cout << "Wybralas niepoprawne dzialanie." << std::endl; break; } wynik = obecnywynik; } } } while( wprowadzonaliczba != 0 ); std::cout << "Koniec" << std::endl; return 0; }
Mogę jeszcze podać treść zadania, lecz raczej nie będzie potrzebna: Napisz prosty kalkulator, który będzie potrafił dodawać, odejmować, mnożyć i dzielić. Program ten ma działać następująco: 1. Wypisuje obecny wynik 2. Wprowadź liczbę 3. Wybierz działanie (jeżeli liczba różna od 0) 4. Wykonaj obliczenia (jeżeli liczba różna od 0) 5. Wróć do kroku 1. 6. Jeżeli wprowadzoną liczbą jest 0, zakończ program. Przykładowe menu wyboru działania: [1] Dodawanie [2] Odejmowanie [3] Mnożenie [4] Dzielenie [5] Rezygnuj |
|
Gibas11 |
» 2016-06-28 18:42:43 Ta linia na pewno jest źle: wynik = obecnywynik; Przypisujesz w złą stronę. Reszta chyba ok, ale nie wczytywałem się dokładnie. |
|
DanieI Temat założony przez niniejszego użytkownika |
W ogóle nie myślałem o tym że kolejność ma znaczenie. » 2016-06-28 18:46:23 W ogóle nie myślałem o tym że kolejność ma znaczenie.
Bo skoro "=" to myślałem że w dwie strony. Dzięki i zamykam temat. |
|
carlosmay |
» 2016-06-28 18:48:41 Można to zrobić bez użycia zmiennej 'wynik'. Np: obecnywynik = obecnywynik / podanaliczba; |
|
DanieI Temat założony przez niniejszego użytkownika |
» 2016-06-28 18:53:48 @carlosmay To znaczy masz na myśli jeszcze w switch u ?? |
|
« 1 » |