001
01.02.2011, 22:31 Uhr
Hans
Library Walker (Operator)
|
Hi,
und was genau ist jetzt das Problem? Abgesehen davon, das in dieser Zeile:
C++: |
x = -b sqrt(b * b - 4 * a * c) / 2 * a;
|
hinter dem ersten b ein Operator fehlt, fällt mir nur auf das sqrt normalerweise mit double arbeitet. Und da x zwar long aber eben auch ein Ganzzahltyp ist, gehen mögliche Kommastellen am Ende verloren.
Hans
Nachtrag: Dann ist noch zu berücksichtigen, das in (Formel-) Büchern an der Stelle meisst dieses Zeichen "±" steht, womit der Compiler aber nichts anfangen kann. D.h. Du solltest beide Fälle berücksichtigen, wenn b*b - 4*a*c positiv wird. Lediglich ein Ergebniss bekommst du ja nur, wenn dabei Null heraus kommt. Und was passiert, wenn b*b - 4*a*c negativ wird? -- Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung. Dieser Post wurde am 01.02.2011 um 22:58 Uhr von Hans editiert. |