C Programm zum Berechnen von Winkel eines Cosinus-Wertes

Seelentau

Cadet 3rd Year
Registriert
Dez. 2012
Beiträge
35
Hallo,

ich bin momentan damit beschäftigt ein Programm in C zu schreiben bei dem man einen Cosinus-Wert eingeben muss und als Antwort soll der passende Winkel kommen. Zum Beispiel cos(40)=0,7660444431;
Also wenn ich in das Programm eingebe 0,7660444431 soll es mir antworten, dass das Ergebniss 40 Grad sind.
Mein Problem ist das ich mit dem Bogenmaß dabei nicht ganz klar komme. Hab auch schon selbst daran gearbeitet, aber irgentwie klappt das nicht so...
Mein Programm sieht im Moment so aus:

------------------------------------------------------
#include <stdio.h>
#include <conio.h>
#include <math.h>

#define PI 3.14159265

int main (void)
{
double Wert, Bogenmass, Grad;
printf ("Geben Sie den Cosinuswert ein: ");
scanf("%f",&Wert);
Bogenmass = acos (Wert);
Grad = Bogenmass * (180 / PI);
printf("Der arc cosinus von %f ist %f Grad.",Wert,Grad);
getch();
return 0;
}
------------------------------------------------------

Ich hoffe mir kann jemand helfen/sagen wo mein Fehler ist.
Danke!
 
Zuletzt bearbeitet:
Was ist denn nun das genaue Problem? Prinzipiell ist die Berechnung korrekt (wenn auch nur approximativ), sofern die Funktion acos einen Wert im Bogenmaß ausgibt. Was kommt denn heraus?
 
Der eingegebene Wert wird immer mit 0.00000000 angegeben und für den Winkel kommt immer 90.0000 raus, egal was eingegeben wurde.
 
Code:
scanf("%lf",&Wert);
Grad = Bogenmass * (180.0 / PI)

Double ist %lf

und

Mit 180 hast du ein Integer und damit ein Typecast der deine Kommastellen vernichtet. Also 180.0 verwenden

PS: in der math.h hast du die Konstante M_PI, dann brauchst du PI nicht selbst zu definieren.
 
Zuletzt bearbeitet:
Achtest du bei der Eingabe darauf, dass du die Zahl mit Punkt statt Komma eingeben musst?
 
@ Nilson: Danke hat geklappt! Der Fehler lag beim %lf und der Nachkommastelle.
@ DjNDB: Der Fehler ist auch aufgetreten wenn man natürliche Zahlen eingegeben hat.
 
Zurück
Oben