Kezdőoldal » Számítástechnika » Programozás » Mi a hiba ezzel a programmal?

Mi a hiba ezzel a programmal?

Figyelt kérdés

#include <iostream>

#include <cmath>

using namespace std;


int main()

{



double x1, x2;

int a, b, c;


cout << "Enter the value of a!" << endl;

cin >> a;


cout << "Enter the value of b!" << endl;

cin >> b;


cout << "Enter the value of c!" << endl;

cin >> c;



x1 = (-b + sqrt(b * b - 4 * a * c)) / (2 *a) ;


x2 = (-b - sqrt( pow(b,2)-4*a*c))/(2*a) ;



cout << "Your roots are: " << endl << x1 << endl << x2 << endl << endl;



return 0;

}



Adott ez az egyszerű program ami a másodfokú egyenlet megoldására volna hivatott, miután megkapta az a,b,c értéket, de sokkal nagyobb hasznát vehetném valami random szám generátorként.


A szintaxisával szerintem nincs gond, mert képes megérteni a programot és működik is, de csak néhány esetben.


Kis és kerek számokkal nekem nem működik és az x1, x2 értékre -1.#IND -t ad én pedig értetlenkedek. Viszont ha random nagy számokat (pl.: 463376), használok, vagy valamelyik szám negatív, akkor működik. Rossz változó típust használok, vagy mi a probléma?



2013. júl. 11. 11:23
 1/5 anonim ***** válasza:
a, b, c is legyen double mert egyrészt nem csak egész lehet a változód, másrészt lehagytad a típuskonverziókat.
2013. júl. 11. 11:56
Hasznos számodra ez a válasz?
 2/5 iostream ***** válasza:
Gondoltál már rá, hogy mi történik a negatív számokkal a gyökjel alatt?
2013. júl. 11. 12:00
Hasznos számodra ez a válasz?
 3/5 iostream ***** válasza:
#1 Ha ő egészegyütthatós másodfokú egyenletet akar megoldatni, akkor teljesen jó az egész együttható, és semmiféle típuskonverziót nem kell beleírni ebbe.
2013. júl. 11. 12:00
Hasznos számodra ez a válasz?
 4/5 anonim ***** válasza:
Ki kell számítanod külön a diszkriminánst, és ha negatív, akkor abszolútértéket venni. Így fogsz kapni értéket negatív diszkrimináns esetén is, de azok nem az egyenlet megoldásai lesznek.
2013. júl. 11. 19:44
Hasznos számodra ez a válasz?
 5/5 iostream ***** válasza:
Ha a diszkrimináns negatív, akkor két út áll előtted: vagy azt mondod, hogy nincs megoldás, vagy megnézed, hogy lehet a komplex gyököket kiszámolni. Az előbbit javaslom.
2013. júl. 12. 09:48
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!