» »

Pomoč C++!

Pomoč C++!

Leptir ::

Zdravo...imam problem ki je sledeč: narediti moram kalkulator v strukturi in naredit funkcijo in glavni program...no to je narejeno samo nevem zakaj hudiča takoj ko ga zaženem napiše "press any key to continue" in se zapre... Vsak odgovor bi mi zelo pomagal še boljša bi bila rešitev. Hvala

Tu je program:




struct oper
{
double op1;
double op2;
char op;
};

void vnos (double op1, double op2, char op, oper bla)
{
bla.op1= op1;
bla.op2= op2;
bla.op= op;
}
double izracun (oper bla)
{
switch (bla.op)
{
case '+' : return bla.op1 + bla.op2; break;
case '-' : return bla.op1 - bla.op2; break;
case '*' : return bla.op1 * bla.op2; break;
case '/' : return bla.op1 / bla.op2; break;
default: return 0;
}
}

int main ()
{
oper bla;
vnos (5, 2, '+', bla);



system ("pause");
return 0;
}

boogie_xlr ::

mogoče
cout << vnos (5, 2, '+', bla) << endl;

Leptir ::

ne...še vedno neki ne dela...to sm meu itak že prej tnx useen

Iluvatar ::

To je zato, ker tvoja funkcija nic ne vraca. Deklariral si jo kot VOID

Leptir ::

kako jo pa naj deklariram

Hexx ::

kot int, če ji dajaš int vrednosti

Leptir ::

rečeno storjeno a še vedno se program takoj zapre

Iluvatar ::

Tako je. In zelo lepo bi bilo, ce bi tam pri deljenju uposteval, da z nic ne moremo deliti ;)

Leptir ::

kako pa to naredim?? mislm neka fora je že...

Iluvatar ::

se pravi tvoj program sedaj izgleda takole:
struct oper
{ 
double op1;
double op2;
char op;
};

int vnos (double op1, double op2, char op, oper bla)
{ 
bla.op1= op1;
bla.op2= op2;
bla.op= op;
}
double izracun (oper bla)
{
switch (bla.op)
{
case '+' : return bla.op1 + bla.op2; break;
case '-' : return bla.op1 - bla.op2; break;
case '*' : return bla.op1 * bla.op2; break;
case '/' : return bla.op1 / bla.op2; break;
default: return 0; 
}
}

int main () 
{
oper bla;
cout << vnos (5, 2, '+', bla) << endl;



system ("pause");
return 0;
}
in to deluje?
za deljenj z nic pa se tukaj
case '/' : return bla.op1 / bla.op2; break;
vprasaj ce je op2 = 0, ce je potem ne smes deliti.

Leptir ::

zelo bi mi pomagal ce mi poves ali moram to z if stavkom naredit ali ce mi ti pokazes oz. popravis ker res nujno potrebujem za jutri. Hvala

napsy ::

ne pozabi klicat izracun() ;)
pa kokr mi je znano se argumenti pri C++ tudi podajajo preko kopiranja. Torej moraš pri vnos() podati referenco oz. kazalec na objekt tipa "struct oper".
"If you die, you die. But when you live you live. There is no time to waste."

c0dehunter ::

Leptir je izjavil:

zelo bi mi pomagal ce mi poves ali moram to z if stavkom naredit ali ce mi ti pokazes oz. popravis ker res nujno potrebujem za jutri. Hvala


case '/'  :{
if(bla.op2==0) cout<<"Napaka: deljenje z nič"<<endl;
else return bla.op1 / bla.op2; break;
I do not agree with what you have to say,
but I'll defend to the death your right to say it.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Neznan problem #2 [C]

Oddelek: Programiranje
91679 (1469) videc
»

Kalkulator

Oddelek: Programiranje
111323 (1090) lebdim
»

[VBA]Excel

Oddelek: Programiranje
81148 (1106) mmaestro
»

VGA cooler

Oddelek: Kaj kupiti
191348 (1107) Vikking
»

P3 700/100 HLAJENJE-HELP!

Oddelek: Navijanje
81405 (1293) element

Več podobnih tem