[C++]Problem z zadaniem z kursu

Witam!

Ostatnio zacząłem uczyć się programowania z kursu na stronie cpp0x.pl. Mam problem z zadaniem domowym, którego treść brzmi tak:

Przez większość zadanie przeszedłem bez problemu,jednakże po usunięciu kilku błędów i uruchomieniu programu pojawił się problem. Cały czas wyświetlał mi się taki sam wynik programu niezależnie jakiego działania użyłem. Proszę o pomoc! Kod:

#include

using namespace std;

int main()


{

    int wynik;

    char dzialanie;

    char liczba;

    liczba=1;

    bool good1;

    bool fail1;

    bool good2;

    bool fail2;

    bool good3;

    bool fail3;

    int a;

    int b;

    cout<<"Twój wynik to:"<
    cout<<"Podaj liczbę a: "<
    cin>>a;

    good1=cin.good();

    fail1=cin.fail();

    cin.clear();

    cin.sync();

    cout<<"Podaj liczbę b: "<
    cin>>b;

    good2=cin.good();

    fail2=cin.fail();

    cin.clear();

    cin.sync();

    cout<<"Wybierz działanie:"<
    cout<<"1 dodawanie"<
    cout<<"2 mnoźenie"<
    cout<<"3 odejmowanie"<
    cout<<"4 dzielenie"<
    cout<<"5 nic nie rób"<
    cin>>dzialanie;

    good3=cin.good();

    fail3=cin.fail();

    cin.clear();

    cin.sync();

    switch(dzialanie)

        {

        case 1:

            {

                wynik=a+b;

                std::cout<<"Twój wynik to:"<
                liczba++;

                break;

            }

        case 2:

                {

                    wynik=a*b;

                    std::cout<<"Twój wynik to:"<
                    liczba++;

                    break;

                }

        case 3:

                {

                    wynik=a-b;

                    std::cout<<"Twój wynik to:"<
                    liczba++;

                    break;

                }

        case 4:

            {

                wynik=a/b;

                std::cout<<"Twój wynik to:"<
                liczba++;

                break;

            }

        case 5:

            {

            std::cout<<"Twój wynik to:"<
            liczba--;

            break;

            }

        }

    if ( false == good1&&good2&&good3 )

        {

            liczba++;

        }

    if ( true == fail1||fail2||fail3 )

        {

            liczba++;

        }

    do

    {

    cout<<"Twój wynik to:"<
    cout<<"Podaj liczbę a: "<
    cin>>a;

    good1=cin.good();

    fail1=cin.fail();

    cin.clear();

    cin.sync();

    cout<<"Podaj liczbę b: "<
    cin>>b;

    good2=cin.good();

    fail2=cin.fail();

    cin.clear();

    cin.sync();

    cout<<"Wybierz działanie:"<
    cout<<"1 dodawanie"<
    cout<<"2 mnoźenie"<
    cout<<"3 odejmowanie"<
    cout<<"4 dzielenie"<
    cout<<"5 nic nie rób"<
    cin>>dzialanie;

    good3=cin.good();

    fail3=cin.fail();

    cin.clear();

    cin.sync();

    liczba--;

    switch(dzialanie)

        {

        case 1:

            {

                wynik=a+b;

                std::cout<<"Twój wynik to:"<
                liczba++;

                break;

            }

        case 2:

                {

                    wynik=a*b;

                    std::cout<<"Twój wynik to:"<
                    liczba++;

                    break;

                }

        case 3:

                {

                    wynik=a-b;

                    std::cout<<"Twój wynik to:"<
                    liczba++;

                    break;

                }

        case 4:

            {

                wynik=a/b;

                std::cout<<"Twój wynik to:"<
                liczba++;

                break;

            }

        case 5:

            {

            std::cout<<"Twój wynik to:"<
            liczba--;

            break;

            }

        }

    if ( false == good1&&good2&&good3 )

        {

            liczba++;

        }

    if ( true == fail1||fail2||fail3 )

        {

            liczba++;

        }

        }while(liczba);

    return 0;



}

Twój program jest dość straszny : ) Słyszałeś o konieczności inicjalizowania zmiennych? Także int wynik = 0; i do tego w switchu jak sprawdzasz po char to musisz mieć znak w “ciapkach” (np. ‘1’ a nie 1). Reszty błędów nie wypisuje. Jak to poprawisz to powinno zadziałać.

@up

Dzięki za odpowiedź, ale na usprawiedliwienie swojego strasznego kodu mam tylko tyle, że się dopiero uczę…

Moje rozwiązanie tego zadanie gdy uczyłem się z tego kursu :slight_smile:

Sory że kod nie jest sformatowany, ale kopiowałem go z notatnika…