Błędne wyniki funkcji, przy wykorzystaniu instrukcji switch

0

Ok, nauczyciel za zadanie dal nam stworzyc "kalkulator" uzywajac funkcji. Return zwraca zle wyniki. Czy ja w ogole dobrze ja uzylem ^^? To jest moje pierwsza stycznosc z programowaniem, a jak na razie podoba mi sie to i raczej bede sie zaglebial w "tajniki";p. Moze cos z tego wyrosnie. Czy ktos moglby zwrocic uwage co zrobilem nie tak (oprocz "fajnych" nazw argumentow takich jak odej, mnoz, itp ;p)?

#include <iostream>
#include <math.h>

using namespace std;

float suma (float x, float y)
{
return (x+y);
}

float roznica (float x, float y)
{
return (x-y);
}

float iloraz (float x, float y)
{
return (x/y);
}

float iloczyn (float x, float y)
{
return (x*y);
}

main ()
{
float x,y,dod,odej,mnoz,dziel;

cout << "Podaj pierwsza liczbe\n";
cin >> x;
cout << "Podaj druga liczbe\n";
cin >> y;
dod=suma (x,y);
odej=roznica(x,y);
mnoz=iloczyn(x,y);
dziel=iloraz(x,y);
cout << "\n\nMenu"<<endl<<endl;
cout <<"Wybierz jeden aby zsumowac\n";
cout <<"Wybierz dwa aby odjac\n";
cout <<"Wybierz trzy aby podzielic\n";
cout <<"Wybierz cztery aby pomnozyc\n";

int zmiana;
cin >> zmiana;
switch(zmiana)
{

case 1:
cout << "Wynik dodawania=" << dod;
break;

case 2:
cout<< "Wynik odejmowania=" << odej;
break;

case 3:
cout<<"Wynik dzielenia=" << dziel;
break;

case 4:
cout<<"Wynik mnozenia=" << mnoz;
break;
}
}

//EDIT- Moge PRZYSIAC, ze wczoraj dzialal nie poprawnie... Dzisiaj go wlaczam jeszcze raz i o dziwo wszystko jest ok... Sorry za kłopot...
A wyniki byly typu 3*3=181000 (czy cos kolo tego, nie pamietam dokladnie, ale wiem ze nie poparte zadnymi logicznymi [przynajmniej mi znanymi ;p] faktami)...

0

Nie wiem jak wymaga twój nauczyciel bądź zadanie ale ja (jestem początkujący i sam tak sobie pisze kalkulator) zrobiłbym tak:

 
#include <iostream>
#include <math.h>
 
using namespace std;
 
/**** MIEJSCE NA ZMIENNE ******/
float a;
float b;
float c;
int zmiana;
 
main ()
{
cout << "Podaj pierwsza liczbe\n";
cin >> a;
cout << "Podaj druga liczbe\n";
cin >> b;
cout << "\n\nMenu"<<endl<<endl;
cout <<"Wybierz jeden aby zsumowac\n";
cout <<"Wybierz dwa aby odjac\n";
cout <<"Wybierz trzy aby podzielic\n";
cout <<"Wybierz cztery aby pomnozyc\n";

cin >> zmiana;
switch(zmiana)
{
 
case 1:
c=a+b;
cout << "Wynik dodawania=" << c;
break;
 
case 2:
c=a-b;
cout<< "Wynik odejmowania=" << c;
break;
 
case 3:
c=a/b;
cout<<"Wynik dzielenia=" << c;
break;
 
case 4:
c=a*b;
cout<<"Wynik mnozenia=" << c;
break;
}
}

Jak będzie ci o linijkę za dużo możesz wyrzucić:

 #include <math.h>

gdyż ta biblioteka nie jest do tego potrzebna ;-)

1 użytkowników online, w tym zalogowanych: 0, gości: 1