Nach Eingabe der drei Seitenlängen a, b, und c eines Dreiecks
soll ein programm feststellen, ob es sich um ein
rechtwinkliges Dreieck handelr oder nicht.
So hab ich das versucht:
#include
#include
#include
#include
Verwende in C++ besser die cmath und cstdio-Header, die sorgen für vernünftige Namespaces, was die „alten“ C-Header nicht tun.
float a, b, c, quadrat;
quadrat = pow(a,2)+pow(b,2);
Anmerkung: a*a+b*b ist wahrscheinlich schneller. Das fällt hier nicht ins Gewicht und ändert wohl auch nichts am Ergebnis, aber man sollte es wissen.
if (c’=='pow(quadrat,0.5))
Wofür sind die Anführungszeichen um ==?
Dann: die korrekte Funktion für eine Quadratwurzel ist sqrt(). Das ist gähnend langsam, ein geeigneterer Ausdruck wäre hier vielleicht:
if( c*c == quadrat ) …
Außerdem liegt hier wahrscheinlich auch das Problem. Durch die Ungenauigkeiten, die bisher durch die Rechenoperationen auf a, b und quadrat ausgeführt worden sind, wirst du wohl kein gutes Ergebnis mehr bekommen, sprich das Endergebnis von sqrt( a*a + b*b ) wird nur in den seltensten Fällen genau gleich dem eingegebenen c sein. Das einzige, was du tun kannst, ist mit einer gewissen Abweichung zu arbeiten:
if( abs(c*c-quadrat)