C++ Wurzel
-
Hallo, so doof die Frage klingt, aber wie macht man den die Wurzel in C++?
Also ich habe es so
erg=(b*b)-(c*c);
erg=sqrt(erg);
cout<<"Loesung = "<<endl;
cout<<erg;Problem: Warning double .. float ..
Was ist mit den Warnungen gemeint und stimmt das überhaupt ?
-
Dieser Fehler sollte nur in C, nicht aber in C++ auftauchen.
C++ unterstützt die Überladenen Formen:double sqrt ( double x ); float sqrt ( float x ); long double sqrt ( long double x );C unterstützt keine Überladung, und hat deshalb nur die double Version. Wenn man dort sqrt mit einem float benutzt wird dieser implizit in einen double gewandelt und nach der Berechnung wieder zurück. Ein double passt aber nicht (immer) in einen float
Es gibt eine Warnung.Siehe dazu auch:
http://www.cplusplus.com/reference/clibrary/cmath/sqrt.htmlGruß
Don06
-
Und wo wäre jetzt mein Fehler ?
-
math.h ist ein C-Header.
Mit dem C++-Header cmath sollte es gehen. (und iostream.h ist weder C noch C++, das ist spätestens seit 1998 iostream ohne h)
-
habs gemacht , aber die fehler kommen immernoch hier sind sie :
In function `int main()'::27: error: `cout' undeclared (first use this function)
27: error: (Each undeclared identifier is reported only once for each function it appears in.)
27: error: `endl' undeclared (first use this function)
32: error: `cin' undeclared (first use this function)
53: warning: converting to `int' from `float'
54: error: call of overloaded `sqrt(int&)' is ambiguous
23: note: candidates are: double sqrt(double)
-
kauf dir mal ein neues buch

die klassen, objekte und funktionen aus <iostream> und den anderen c++-headern
befinden sich im namespace "std".also entweder
using namespace std;schreiben
oder
std::cout << "blubb" << std::endl;verwenden

-
Die Wurzel eines Integers bekommst du trotzdem noch nicht so:
int erg = std::sqrt(9);, da brauchst du schon
float erg = std::sqrt(static_cast<float>(9));
-
also nun habe ich das, habe nur noch 1 Fehler
-
Puh, deine Einrückung ist anstrengend
"Normalerweise" rückt man etwa so ein:int main() { bla if ( blubb ) { blebb blöbb } else bliblablubber }Ach, und es würde noch helfen, wenn du die Fehlermeldungen posten würdest
-
Hier der Fehler : Zeile 100
expected unqualified-id before "if"
expected,' or;' before "if"
-
Eventuell eine Klammer zuviel geschlossen? Kann ich aus dem Code jetzt schlecht erkennen..
-
int main() { bla if ( blubb ) { blebb blöbb } else bliblablubber } blabla }
-
ups sry hab vergessen:
int main() { bla if ( blubb ) { blebb blöbb } else { bliblablubber } blabla }so jetzt passts

-
hmm erstmal:
Ja , ich mach es mit dem Alten

[...] denn wir lernen es so in der Schule!
was ist das für ne Einstellung? Da Lehrer nicht, wie Akademiker, gezwungen sind, jedes Jahr mehrer Fortbildungen zu besuchen (tjo warum sind unsere Lehrer wohl so schlecht?!), sind diese oft auf einem Stand von vor 15 - 20 Jahren. Der Standard wurde vor ca. 10 Jahren schon dahingehend geändert, das alle Funktionen im Namensraum std liegen usw.