HudyWeas Temat założony przez niniejszego użytkownika |
Przechodzenie do kolejnej części kalkulatora » 2017-01-04 19:35:42 Witam, po skończonej komendzie switch, po wykonaniu obliczeń nic mi się nie wyświetla, choć program powinien iść dalej. Chodzi mi o miejsce po 1 użyciu tej komendy. Nie mam zielonego pojęcia o co może chodzić Oto program. #include <iostream> using namespace std; int main() { int a, b, wynik, znak1, znak2, c, dalej, wynik1; do { cout << "Podaj liczbe a: " << endl; cin >> a; cout << "Podaj liczbe b: " << endl; cin >> b; } while( a == 0 || b == 0 ); cout << "Wybierz dzialanie:" << endl; cout << "[1] Dodawanie" << endl; cout << "[2] Odejmowanie" << endl; cout << "[3] Mnozenie" << endl; cout << "[4] Dzielenie" << endl; cout << "[5] Koniec" << endl; cin >> znak1; switch( znak1 ) { case 1: { char dodawanie = a + b; cout << "a + b = " << a + b << endl; cin >> wynik; break; } case 2: { char odejmowanie = a - b; cout << "a - b = " << a - b << endl; cin >> wynik; break; } case 3: { char mnozenie = a * b; cout << "a * b = " << a * b << endl; cin >> wynik; break; } case 4: { char dzielnie = a / b; cout << "a / b = " << a / b << endl; cin >> wynik; break; } case 5: { char rezygnuj; return 0; } default: cout << "Zly znak" << endl; break; } do { do { cout << "Wynik: " << wynik << endl; cout << "Podaj liczbe b: " << endl; cin >> c; } while( c == 0 ); cout << "Wybierz dzialanie:" << endl; cout << "[1] Dodawanie" << endl; cout << "[2] Odejmowanie" << endl; cout << "[3] Mnozenie" << endl; cout << "[4] Dzielenie" << endl; cout << "[5] Koniec" << endl; cin >> znak2; switch( znak2 ) { case 1: { char dodawanie = a + b; cout << "wynik + b = " << wynik + b << endl; cin >> wynik1; break; } case 2: { char odejmowanie = a - b; cout << "wynik - b = " << wynik - b << endl; cin >> wynik1; break; } case 3: { char mnozenie = a * b; cout << "wynik * b = " << wynik * b << endl; cin >> wynik1; break; } case 4: { char dzielnie = a / b; cout << "wynik / b = " << wynik / b << endl; cin >> wynik1; break; } case 5: { char rezygnuj; return 0; } default: cout << "Zly znak" << endl; break; } } while( wynik1 != 0 ); return 0; } |
|
karambaHZP |
» 2017-01-04 20:29:21 Ogólnie całość jest źle napisana. Na początek char dodawanie = a + b; cout << "a + b = " << a + b << endl; cin >> wynik; break; |
Wyjaśnij krok po kroku, co robi ten kod? |
|
HudyWeas Temat założony przez niniejszego użytkownika |
» 2017-01-05 16:21:53 Wiem char jest niepotrzbne, to co wysłałeś służy do pokazania wyniku, a cin do zapisania go, by potem użyć tego wyniku |
|
karambaHZP |
» 2017-01-05 16:48:56 służy do pokazania wyniku, a cin do zapisania go, by potem użyć tego wyniku |
Powróć do Obsługa strumienia wejściowego i przeczytaj materiał od tej lekcji ponownie. Tym razem wolniej i dokładnie analizując treść tematów. #include <iostream>
int main() { int wynik; int pierwsza_liczba; int druga_liczba; std::cin >> pierwsza_liczba >> druga_liczba; wynik = pierwsza_liczba + druga_liczba; std::cout << wynik; } http://melpon.org/wandbox/permlink/twtzP3feRBIpCOww |
|
HudyWeas Temat założony przez niniejszego użytkownika |
» 2017-01-05 17:06:56 Rozumiem. Cin zapisuje tylko to, co zapisuje użytkownik |
|
HudyWeas Temat założony przez niniejszego użytkownika |
» 2017-01-05 17:09:26 Czyli ta część powinna wyglądać tak: switch( znak1 ) { case 1: { char dodawanie = a + b; cout << "a + b = " << a + b << endl; wynik = a + b; break; } |
|
karambaHZP |
» 2017-01-05 17:14:47 Pomyśl przez chwilę, ile tutaj jest niepotrzebnego kodu. char dodawanie = a + b; cout << "a + b = " << a + b << endl; wynik = a + b; break; |
|
|
HudyWeas Temat założony przez niniejszego użytkownika |
» 2017-01-05 17:34:56 Masz rację. Teraz to wygląda o wiele lepiej switch( znak1 ) { case 1: { wynik = a + b; cout << "a + b = " << wynik << endl; break; } case 2: { wynik = a - b; cout << "a - b = " << wynik << endl; break; } case 3: { wynik = a * b; cout << "a * b = " << wynik << endl; break; } case 4: { wynik = a / b; cout << "a / b = " << wynik << endl; break; } case 5: { return 0; } default: cout << "Zly znak" << endl; break; } |
|
« 1 » 2 |