Prosty kalkulator

  • Rejestracja: dni
  • Ostatnio: dni
0

Program działa, aczkolwiek po wybraniu case kończy działanie. Dlaczego tak się dzieje? Proszę o ewentualne rozwiązania

Kopiuj
#include <iostream>
#include <cstdlib>
using namespace std;
int liczba;
int liczba2;
int wynik;
int koniec=0;
int wybor;
int dodawanie()
{
    wynik=liczba+liczba2;
    cout<<wynik<<endl;
    return wynik;
}
int odejmowanie()
{
    wynik=liczba-liczba2;
    cout<<wynik<<endl;
    return wynik;
}
int mnozenie()
{
    wynik=liczba*liczba2;
    cout<<wynik<<endl;
    return wynik;
}
int dzielenie()
{
    wynik=liczba/liczba2;
    cout<<wynik<<endl;
    return wynik;
}
int resztazdzielenia()
{
    wynik=liczba%liczba2;
    cout<<wynik<<endl;
    return wynik;
}
void wyczysc()
{
    wynik=0;
    liczba=0;
    liczba2=0;
}
void wyjscie()
{
    koniec++;
    exit(0);
}
int main()
{
    cout << "Witamy w kalkulatorze" << endl;
    do
    {
    cout<<"Podaj liczbe: "<<endl;
    cin>>liczba;
    cout<<"Podaj liczbe: "<<endl;
    cin>>liczba2;
    system("cls");
    cout<<"Wynik: "<<wynik<<endl;
    cout<<"Wprowadzone liczby: "<<liczba<<" , "<<liczba2<<endl;
    cout<<"======================================"<<endl;
    cout<<"Jaka operacje wykonac na wprowadzonych liczbach?"<<endl;
    cout<<"--------------------------------------"<<endl;
    cout<<"1.DODAWANIE"<<endl;
    cout<<"2.ODEJMOWANIE"<<endl;
    cout<<"3.MONZENIE"<<endl;
    cout<<"4.DZIELENIE"<<endl;
    cout<<"5.RESZTA Z DZIELENIA"<<endl;
    cout<<"6.WYCZYSC"<<endl;
    cout<<"7.WYJSCIE"<<endl;
    switch(wybor)
    {
    case 1:
        dodawanie();
        break;
    case 2:
        odejmowanie();
        break;
    case 3:
        mnozenie();
        break;
    case 4:
        dzielenie();
        break;
    case 5:
        resztazdzielenia();
        break;
    case 6:
        wyczysc();
        break;
    case 7:
        wyjscie();
        break;
    default:
        cout<<"Nie ma takiej opcji"<<endl;
        return false;
    }
    }while(koniec==1);
    return 0;
}
kq
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
0
Kopiuj
int koniec=0;
Kopiuj
while(koniec==1);

Warunek nie zostaje spełniony (w końcu 1 ≠ 0), więc pętla się kończy.

  • Rejestracja: dni
  • Ostatnio: dni
0

OK dzięki

  • Rejestracja: dni
  • Ostatnio: dni
0

Próbowałem poprawić to co sugerowałeś, ale bez zmian

kq
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
0

Pokaż zmieniony kod.

  • Rejestracja: dni
  • Ostatnio: dni
0

Dobra mam, dzięki za pomoc

  • Rejestracja: dni
  • Ostatnio: dni
0
SkyreX napisał(a):

Dobra mam, dzięki za pomoc
A jednak nie

  • Rejestracja: dni
  • Ostatnio: dni
0

Kurde, gdzie by go porawić, bo jak grzebałem z whilem to nic nie dawało

kq
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
0

Nie umiem odpowiedzieć nie widząc kodu.

A0
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 29
0

Gdzie wczytujesz wartość do zmiennej "wybor" ? :)

kq
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
0

Nigdzie, jako zmienna globalna ma wartość 0.

A0
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 29
0

Wiem, miałem na myśli, że switch w ogóle się nie wykona.

WY
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 134
0
Kopiuj
    cout<<"Jaka operacje wykonac na wprowadzonych liczbach?"<<endl;
    cout<<"--------------------------------------"<<endl;
    cout<<"1.DODAWANIE"<<endl;
    cout<<"2.ODEJMOWANIE"<<endl;
    cout<<"3.MONZENIE"<<endl;
    cout<<"4.DZIELENIE"<<endl;
    cout<<"5.RESZTA Z DZIELENIA"<<endl;
    cout<<"6.WYCZYSC"<<endl;
    cout<<"7.WYJSCIE"<<endl
    cin>>wybor;

Spróbuj tego.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.