Problem mit Wurzel
-
Hallo Leute!
Ich habe ein kleines Programm geschrieben das sich an Pi annähern soll. Dabei nutzt es die Formel (9801/4412) * Wurzel aus 2. Deshalb hab ich folgendes geschrieben:
#include <iostream> using namespace std; int main() { cout << (9801/4412)*sqrt(2); }
Das bekomm ich aber nur den Fehler:
`
1>main.cpp
1>.\main.cpp(7) : error C3861: "sqrt": Bezeichner wurde nicht gefunden.
1>Das Buildprotokoll wurde unter "*****" gespeichert.
1>Pi - 1 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
`
Was mach ich falsch?
-
#include <cmath>
Und
9801.0/4412
Sonst hast du eine Ganzzahldivision -> der Nachkommateil wird weggeworfen.
-
Das geht leider auch nicht! Dann kommt noch ein Fehler (Ich schreibe es in C++):
`
1> C:\Program Files\Microsoft Visual Studio 9.0\VC\include\math.h(128): oder "double sqrt(double)"
1> bei Anpassung der Argumentliste '(int)'
1>Das Buildprotokoll wurde unter "******" gespeichert.
1>Pi - 1 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
`
-
Auch den sqrt-Parameter als double deklarieren:
(9801.0/4412.0)*sqrt(2.0)
Es gibt aber noch eine andere einfachere Formel dazu:
4.0 * atan(1.0)
-)
-
Das funzt schon THX! Aber es beendet gleich nachher ohne das ich was sehe!
EDIT: Und es rechnet nur auf 4-Stellen
-
Jetzt bist du aber definitiv im falschen Subforum:
s. http://www.c-plusplus.net/forum/viewtopic-var-t-is-111042.htmlUnd rechnen tut er schon genauer aber wahrscheinlich nur weniger Nachkommastellen anzeigen - such mal nach 'precision'...
Edit: wie weiß du, daß er nur auf 4 Stellen rechnet, wenn du ehe nichts siehst -)
-
Weil ich mit STRG+F5 es so ausführen kann das es geht!
-
Du musst das Programm halt über die Kommandozeile ausführen, nicht einfach draufklicken, oder du machst am Ende des Programms getchar();.