Hallo Fange gerade mit C an und habe eine Frage. Wieso geht diese Formel nicht. Will die Steigung einer Gerade berechnen, zum zeichnen auf einem LCD Display. Komme aber mit dieser Formel nicht weiter, da sie nicht die Ergebnisse liefert, die ich möchte. Das Ergebnis der Berechnung ist doch 0.6. Aber die Abfrage mit IF auf > 0.5 geht nicht. Müsste doch y++ machen, oder liege ich da so falsch. unsigned char x= 3, y = 2 ,x1 = 8,y1 = 5; float steigung; //geht doch damit ????? steigung = (y1 - y) / ( x1 - x); //steigung = 0.6 if ( steigung > 0.5) {y++;} MFG Dieter
Nun, Du solltest Dir vor der Benutzung von C zumindest die Grundlagen der Sprache aneignen. Dein Ausdruck wird vom Typ »int« berechnet (auch nicht vom Typ »unsigned char«, wie man auf den ersten Blick annehmen könnte). Damit ist das Ergebnis dann immer 0. Du mußt mindestens eine Seite zuvor auf »float« zwingen, oder besser gleich beide: steigung = (float)(y1 - y) / (float)(x1 - x);
Danke für die schnelle Antwort. Jetzt geht es. Schaue mir das mit den automatischen Typumwandlungen mal genauer an. MFG Dieter
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.