Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

switch case problem z default

Ostatnio zmodyfikowano 2016-10-23 14:23
Autor Wiadomość
kirito1996
Temat założony przez niniejszego użytkownika
switch case problem z default
» 2016-10-23 13:59:41
cześć mam taki problem że program nie wyświetla komunikatu z default, znaczy wyświetla ale tylko za pierwszą próbą tzn. podaje poprawną liczbę pierwszą podaję również drugą potem program pokazuje jakie są dostępne opcję i właśnie w tym momencie jak wpiszę literę to ok komunikat się wyświetli ale gdy wybiorę daną funkcję programu dajmy na to [1] - dodawanie, program to policzy poda wynik i jak teraz spróbuję wpisać literę zamiast liczby to nic się nie stanie to znaczy że program zrobi pętle ale nie wyświetli komunikatu a jak podam teraz błędną liczbę tzn. "9" to pojawi się komunikat, bez sensu wytłumaczycie mi to ??
 
C/C++
#include <cstdio>
#include <iostream>
#include <windows.h>
#include <cstdlib>
using namespace std;

int wczytajliczbe()
{
    int a;
    bool b;
    do
    {
        cin >> a;
        b = cin.good();
        cin.clear();
        cin.sync();
    } while( b == 0 );
   
    return a;
}

int main()
{
    int wynik = 0;
    int c;
    int a;
    int b;
    bool sukces;
   
    do
    {
       
       
        cout << "obecny wynik to = " << wynik << endl;
        cin.clear();
        cin.sync();
       
        cout << "podaj liczbe pierwsza: ";
        a = wczytajliczbe();
       
       
        if( a != 0 )
        {
            cout << "podaj liczbe druda: ";
            b = wczytajliczbe();
        }
        else
             return 0;
       
        if( b != 0 && a != 0 )
        {
            do
            {
                cout << " [1] Dodawania \n [2] Odejmowanie \n [3] mnozenie \n [4] dzielenie \n [5] powrot \n [6] wyjscie \n";
                cin >> c;
                sukces = cin.good();
                cin.clear();
                cin.sync();
                system( "cls" );
                switch( c )
                {
                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:
                    break;
                case 6:
                   
                    return 0;
                    break;
                   
                default:
                    system( "cls" );
                    cout << "nie poprawny wybor \n";
                }
            } while( c != 5 || sukces == 0 );
           
        }
        else
             return 0;
       
    } while( c != 6 );
   
    return 0;
}
P-152804
carlosmay
» 2016-10-23 14:07:30
P-152806
kirito1996
Temat założony przez niniejszego użytkownika
» 2016-10-23 14:23:13
o fajnie ;D teraz wszystko gra ;DD
P-152808
« 1 »
  Strona 1 z 1