Mi a hiba a kódomban?
Kódom
#include <iostream>
#include <cmath>
using namespace std;
int main() {
float a, b, c, d, x1, x2, x3, Y, A, B, imaginaryPart;
cout << "Enter coefficients a, b, c and d: " << endl;
cout << "a=";
cin >> a;
cout << "b=";
cin >> b;
cout << "c=";
cin >> c;
cout << "d=";
cin >> d;
A = (27*a*a*c-9*a*b*b)/(27*a*a*a);
B = (2*b*b*b-9*a*b*c+27*a*a*d)/(27*a*a*a);
Y = (B/2)*(B/2)+(A/3)*(A/3)*(A/3);
if (Y >= 0) {
x1 = (-b/3/a+cbrt(-B/2+sqrt(Y))+cbrt(-B/2-sqrt(Y)));
x2 = (-b/3/a-0.5*(cbrt(-B/2+sqrt(Y))+cbrt(-B/2-sqrt(Y))));
x3 = (-b/3/a-0.5*(cbrt(-B/2+sqrt(Y))+cbrt(-B/2-sqrt(Y))));
imaginaryPart = ((sqrt(3)/2)*(cbrt(-B/2+sqrt(Y))-cbrt(-B/2-sqrt(Y))));
cout << "x1 = " << x1 << endl;
cout << "x2 = " << x2 << "+" << imaginaryPart << "i" << endl;
cout << "x3 = " << x3 << "-" << imaginaryPart << "i" << endl;
} else {
x1 = (-b/3/a+2*sqrt(-A/3)*cos(1/3*acos((-B/2)/(sqrt(-A/3*-A/3*-A/3)))));
x2 = (-b/3/a+2*sqrt(-A/3)*cos(2*M_PI/3+1/3*acos((-B/2)/(sqrt(-A/3*-A/3*-A/3)))));
x3 = (-b/3/a+2*sqrt(-A/3)*cos(2*M_PI/3-1/3*acos((-B/2)/(sqrt(-A/3*-A/3*-A/3)))));
cout << "x1 = " << x1 << endl;
cout << "x2 = " << x2 << endl;
cout << "x3 = " << x3 << endl;
}
return 0;
}
Egészekkel osztasz.
Pl. a "cos(1/3*acos(..." helyett "cos(1/3.0*acos(..." kellene.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!