C++ program do liczenia pierwiastków równania kwadratowego
Ostatnio zmodyfikowano 2014-10-28 23:41
Kezman Temat założony przez niniejszego użytkownika |
C++ program do liczenia pierwiastków równania kwadratowego » 2014-10-28 20:09:42 Witam, problem polega na tym, że w wynikach X1 i C1 wychodzą dziwne liczby(jakby coś tam już siedziało) mimo, że kod jest taki sam jak w X2 i C2(różnica jedynie w znaku +/-). prosiłbym o pomoc w znalezieniu gdzie jest błąd który to powoduje. Kod: #include <cstdlib> #include <iostream> #include <conio.h> #include <math.h> #include <iomanip> using namespace std;
int main() { double a = 0, b = 0, c = 0, de = 0, re = 0, im = 0, x1 = 0, x2 = 0, x12 = 0; cout << "\nPodaj wspolczynniki rownania kwadratowego"; cout << "\na= "; cin >> a; if( a != 0 ) { cout << "\nb= "; cin >> b; cout << "\nc= "; cin >> c; de = b * b - 4 * a * c; if( de >= 0 ) if( de > 0 ) { x1 =( - b - sqrt( de ) ) /( 2 * a ); x2 =( - b + sqrt( de ) ) /( 2 * a ); cout << "\nx1= " << fixed << setprecision( 2 ) << x1 << cout << "\nx2= " << fixed << setprecision( 2 ) << x2; } else { x12 =- b /( 2 * a ); cout << "\nPierwiastek podwojny x12=" << fixed << setprecision( 2 ) << x12; } else { re =- b /( 2 * a ); im = sqrt( - de ) /( 2 * a ); cout << "\nc1= " << fixed << setprecision( 2 ) << re + im << cout << "\nc2= " << fixed << setprecision( 2 ) << re - im; } } else cout << "\nRownianie jest liniowe"; cout << "\n\n\n\n\n\nNacisnij cokolwiek aby kontynuowac ...."; getch(); return 0; }
|
|
Monika90 |
» 2014-10-28 20:49:46 cout << "\nx1= " << fixed << setprecision( 2 ) << x1 << cout << "\nx2= " << fixed << setprecision( 2 ) << x2;
o jedno cout za dużo cout << "\nc1= " << fixed << setprecision( 2 ) << re + im << cout << "\nc2= " << fixed << setprecision( 2 ) << re - im;
tu też |
|
Kezman Temat założony przez niniejszego użytkownika |
» 2014-10-28 23:41:51 o ja ślepy... dziękuję ślicznie :) zamykam. |
|
« 1 » |