Witam!
Mam taki otóż problem,próbuję zrobić prosty kalkulator,który w zależności od podania liczby,przerzuca ( za pomocą if"a) na switcha,a ( równocześnie ) a następnie w zależności czy do działania są potrzebne 2 liczby czy jedna,wykonuje odpowiednią instrukcję.Mój problem polega na tym,że bez różnicy,jaką wartość wprowadzę to i tak zawsze jest robione mnożenie z pierwszym if"em. (np.po wprowadzeniu na początku 5 ( zmiennej c ),i tak robi się instrukcja z mnożeniem.Nie wiem w czym może być problem,myślałem że to coś z funkcją break,aczkolwiek wstawiłem ją w odpowiednie miejsca,więc to pewnie nie to...(aczkolwiek jako że jestem,dopiero początkujący,to z góry przepraszam,jeśli byłby to jakiś głupi błąd ;) )
Poniżej wklejam mój kod:
#include <iostream>
long long a,b,c;
using namespace std;
float mn(){
float mnozenie;
mnozenie=a*b; //MNO¯ENIE
return mnozenie;
}
void dz(){
int d,reszta;
d=a/b;
reszta=a%b;
cout<<a<<" podzielone przez "<<b<<" jest rowne "<<d<<" a reszta jest rowna "<<reszta; //DZIELENIE
}
float dod(){
float d;
d=a+b;
return d;
}
float odj()
{
float o;
o=a-b;
return o;
}
float pot()
{float p;
p=a*a;
return p;
}
float silnia()
{float sln;
for (int i=1; i<=a; i++) //dla 5 silnia = 1*2*3*4*5=120
{
sln=a*1;
return sln;
}
}
int main() {
//G£ÓWNA FUNKCJA
cout<<"Wybierz co chcialbys zrobic z liczbami/liczba"<<endl;
cout<<"1) Mnozenie"<<endl<<"2) Dzielenie"<<endl<<"3) Dodawanie"<<endl<<"4) Odejmowanie"<<endl<<"5) Potegowanie"<<"6) Silnia"<<endl<<endl;
cin>>c;
if(c=1||2||3||4)
{
cout<<"Podaj liczby potrzebne do wykonania dzialania";
cin>>a;
cout<<endl;
cin>>b;
cout<<endl;
switch(c){
case 1:cout<<mn();
break;
case 2:dz();
break;
case 3:cout<<dod();
break;
case 4:cout<<odj();
break;
default:cout<<"Wprowadz inna liczbe";
break;
}
}
else if(c=5||6)
{
cout<<"Podaj jedna liczbe do wykonania dzialania";
cout<<endl;
cin>>a;
cout<<endl;
switch (c){
case 5:cout<<pot();
break;
case 6:cout<<silnia();
break;
default:cout<<"Wprowadz inna liczbe";
}
}
else cout<<"Wprowadziles niepoprawna liczbe";
return 0;
}