Problema C++
Last Updated: Dec 02 2012 19:51, Started by
AIVV
, Oct 16 2012 21:04
·
0
#1
Posted 16 October 2012 - 21:04
Am urmatoarea functie care ar trebuii sa rezolve o ecuatie de gradul 2. In cazul in care delta este mai mare ca 0 solutiile sunt bune,la fel si daca delta este mai mic ca 0. Dar in cazul in care delta este egal cu 0, parca sare peste acel "else if" si se duce direct si face else si imi spune ca nu exista solutii reale.
void rezolvaEcuatie2(int a,int b, int c) { float x1, x2, x; float delta; delta=(b*-(4*a*c); if(delta>0) { x1=(-b+sqrt(delta))/(2*a); x2=(-b-sqrt(delta))/(2*a); cout<<"Delta= "<<delta; cout<<"\nx1="<<x1; cout<<"\nx2="<<x2; } else if(delta=0) { x=-b/(2*a); cout<<"X="<<x; } else cout<<"\nNu exista radacini reale"; } |
#2
Posted 16 October 2012 - 21:12
Nu sunt sigur, dar nu mai compara delta cu 0. Compara-l cu 0.001 sau ceva de genul.
|
#3
Posted 16 October 2012 - 21:18
Am gasit problema, am uitat un egal la:
else if(delta=0)Trebuia: else if(delta==0)Se pare ca acum merge. Oricum,multumesc pentru raspuns. |
#4
Posted 16 October 2012 - 21:20
Nici nu am vazut ca nu ai pus == . Ce IDE folosesti?
Ma bucur ca merge, insa pe viitor incearca sa compari cu o constanta cum ti-am spus. Uite aici mai multe detalii: http://stackoverflow...uble-comparison Edited by danielfp, 16 October 2012 - 21:24. |
#5
Posted 16 October 2012 - 21:34
Nici eu nu am vazut, ma uitam la functie si nu imi dadeam seama ce e gresit.Pana la urma am vazut.
O sa incerc si cum ai spus. Folosesc Dev-C++. |
#6
Posted 18 November 2012 - 21:51
Daca scrii ( void rezolvaEcuatie2(int a,int b, int c) ) iti citeste valorile pentru a ,b c ?
|
#7
Posted 19 November 2012 - 18:54
Banuiesc ca in cazul tau vrei sa faci o functie care rezolva o ecuatie de gradul 2. a,b,c o sa fie introduse de la tastatura.
Asta inseamna ca in main poti sa pui o linie care citeste variabilele (cin>>a,cin>>b,cin>>c),iar cand apelezi functia o sa fie ceva de genul: rezolvaEcuatie2(a,b,c);poti sa pui si x,y,z (cin>>x,cin>>y,cin>>z), iar apelul functiei se va face in felul urmator:rezolvaEcuatie2(x,y,z);. Teoretic variabilele din main() se suprapun peste variabilele din definitia functiei. (void rezolvaEcuatie2(int a,int b, int c) ). |
#8
Posted 02 December 2012 - 19:46
OpErAtOr96, on 02 decembrie 2012 - 18:27, said:
Un vot plz ... Nu cer mult - http://www.thewar.ro...nume=OpErAtOr96 si daca poti da-l si mai departe..Ajutama sa castig o licenta CS:GO ONtopic: puteai sa pui si direct 3 if-uri fara else-uri. Cazurile <0 si =0 puteai fi tratate si intr-un singur caz. |
#9
Posted 02 December 2012 - 19:51
OpErAtOr96, on 02 decembrie 2012 - 18:27, said:
Un vot plz ... Nu cer mult - http://www.thewar.ro...nume=OpErAtOr96 si daca poti da-l si mai departe..Ajutama sa castig o licenta CS:GO CSGO a fost 5 euro acum cateva weekend-uri. Daca renuntati la berile alea pe care le bei ilegal cu prietenii tai de 12 ani sau la tigarile pe care le fumezi pentru acceptare sociala, ti-l cumparai destul de lejer. Ti-l cumperi si acum, de fapt. |
Anunturi
Bun venit pe Forumul Softpedia!
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users