Zgodnie z poleceniem z książki Bjarne Stroustrupa miałem wykonać funkcję obliczającą deltę oraz pierwiastki trójmianu kwadratowego.
#include "std_lib_facilities.h"
double delta(double a, double b, double c)
{
double del=(b*b)+(-4*a*c);
if (del<0)
throw runtime_error("Delta mniejsza od zera!");
else if (del==0){
double x0=-b/(2*a);
return x0;
}
else if (del>0){
double x1=(-b-sqrt(del))/(2*a);
return x1;
}
}
int main()
try{
cout<<"Program obliczajacy delte i pierwiastki z rownania kwadratowego."<<endl;
cout<<"Podaj a, b oraz c rowniania ax^2+bx+c."<<endl;
double a=0;
double b=0;
double c=0;
cin>>a;
cin>>b;
cin>>c;
double paucieka=delta(a, b, c);
cout<<"Twoje rozwiazanie to: "<<paucieka<<'/n';
return 0;
}
catch(runtime_error& e)
{
cerr<<e.what()<<'\n';
keep_window_open();
return -1;
}
Póki co odpuściłem sobie obliczanie drugiego pierwiastka. Zamiast normalnego wyniku (np. dla a=1,b=4,c=-5 "x1" wynosiłoby -5) dostaję "-512142". Byłbym wdzięczny za wskazanie mi błędu.