Rechnen mit double und int
-
Hallo,
ich habe das Problem, dass ich nicht weiterkomme mit meiner Berechnung.
Habe z.B.:#include <stdio.h> void main(void) { double x1, x2, x, f; x1 = -10; x2 = 0; x = 0.5*(x1 + x2); printf("Näherungswert ist: x=%.3f\n", x); f = 3 * (x ^ 3) - 5 * (x ^ 2) + 8; ...
Wieso sagt mir mein VS da, dass das x bei f=... ein int Typ annehmen muss?!?!?!
Zur Info: das x kann jeden Wert annehmen, muss nicht -5,000 (kann auch -1,568) lauten ABER er muss mit 3 Nachkommastellen angegeben werden und das f auch entsprechend. Deswegen def. ich auch x & f als double....
Kann mir hier jemand weiterhelfen sodass ich f ausrechnen kann?!
-
Der Operator ^ ist nicht der, den du möchtest.
-
wie schreibe ich das "hoch" 3 bzw. "hoch" 2 sonst hin?
Anstatt ^3 einfach 3 mal das selbe multipliziert?
-
-
Apleks schrieb:
Anstatt ^3 einfach 3 mal das selbe multipliziert?
Das wäre die schnellste und einfachste Möglichkeit.
pow
kannst du machen, wenn du höhere oder variable Exponenten hast.^ ist übrigens das binäre Exclusiv-Oder
-
Oder aber das Horner-Schema anwenden:
f = (3 * x * x - 5 * x) * x + 8;
Zumindestens bei komplexeren Polynomen kann dies spürbare Performance-Gewinne bringen (hier bringt es ja nur eine Multiplikation weniger).
-
Th69 schrieb:
Oder aber das Horner-Schema anwenden:
f = (3 * x * x - 5 * x) * x + 8;
Zumindestens bei komplexeren Polynomen kann dies spürbare Performance-Gewinne bringen (hier bringt es ja nur eine Multiplikation weniger).
Hast es nicht vollständig angewandt.
f = (3 * x - 5) * x * x + 8;
-
Ups, ja, da ging ja noch was.