Witam, próblowałem troche rozbudować zadanie domowe z jednego z serwisów do nauki C++, postanowiłem cały kalkulator napisać na funkacj jednak w wyniku bierze mi jakąś wartość ze stosu(jak się domyślam). Prawdopodobnie występuje tu jakiś błąd w argumentach funkcji/zwracanej wartości przez funkcje jednak studiując ten dział nie moge się domyśleć na czym ten błąd polega. Prosze o wskazówki. Mam jeszcze jedno pytanie, czy moge w dwóch funkcjach używać stałej o tej samej nazwie skoro są widoczne tylko wewnątrz funkcji-czyli czy moge nazwać w każdym przypadku(odejmowania, dodawania, mnożenia, dzielenia) stałe jako int a i int b?
#include <iostream>
using namespace std;
int Addition(int AddA, int AddB)
{
return AddA+AddB;
}
int Substraction (int SubstractA, int SubstractB)
{
return SubstractA-SubstractB;
}
int Multiplication (int MultipA, int MultipB)
{
return MultipA*MultipB;
}
int Division (int DivisA, int DivisB)
{
return DivisA%DivisB;
}
int GetAmount(int CorrectNumber)
{
do
{cin.clear();
cin.sync();
cin>>CorrectNumber;
if(cin.good()==0)
cout<<"To nie jest liczba!"<<endl;
} while(cin.good()==0);
return CorrectNumber;
}
int main()
{ int FirstNumber, SecondNumber, SwitchChoice, Score;
cout<<"Wpisz swoja liczbe" << endl;
GetAmount(FirstNumber); cout<<endl;
cout<<"Wpisz druga liczbe"; cout<<endl;
GetAmount(SecondNumber); cout<<endl;
cout<<"====================="<<endl;
cout<<"1.Dodawanie"<<endl;
cout<<"2.Odejmowanie"<<endl;
cout<<"3.Mnozenie"<<endl;
cout<<"4.Dzielenie"<<endl;
cout<<"5.Wyjscie z programu"<<endl;
do
{
cin.clear();
cin.sync();
cin>>SwitchChoice;
if(cin.good()==0 && SwitchChoice>5 && SwitchChoice<0)
cout<<"Wybierz prawidlowa opcje!";
} while(cin.good()==0);
switch(SwitchChoice)
{ case 1:
Score=Addition(FirstNumber, SecondNumber);
cout<<Score;
break;
case 2:
Score=Substraction(FirstNumber, SecondNumber);
cout<<Score;
break;
case 3:
Score=Multiplication(FirstNumber, SecondNumber);
cout<<Score;
break;
case 4:
Score=Division(FirstNumber, SecondNumber);
cout<<Score;
break;
case 5:
cout<<"Dziekuje za skorzystanie z kalkulatora"<<endl;
goto exit;
break;
}
exit:
return 0;
}
Program nie jest jeszcze skończony więc poboczne uwagi i tak pewnie poprawie później.