http://www.pronix.de -> Forum -> C-Programmieren

Unterseiten

Forum: C-Programmieren

Moderatoren: juergen, Martin Conrad

Thema: Fragen zu einer Bogenmaß-Funktion

  • (nur registrierte Mitglieder)
Moinsen!
Ich muss ein Programm schreiben das den Bogenmaß berechnet.
Da ich mal ein bischen den Umgang mit Funktionen üben möchte hab ich folgendes gebastelt:


double bogenmaß(double wink)
{
	wink = ((2*3.1415926535898)*(wink/360));
	return wink;
}


int main(void)
{
	double winkel;
	double bogen;
	int i= 0; //Zählvariable 

	printf("Bitte geben Sie einen Winkel ein: ");
	scanf_s("%d", &winkel); 

	bogen = bogenmaß(winkel);

	printf("Bogenmas: %d\n", bogen);
}


Leider weiß ich nicht was ich falsch gemacht habe. Also es kommen aufjeden Fall keine sinnvollen Zahlen bei raus.
Ich nehme als Datentyp double, dda die anderen sonst leider zu klein sind. Gibt es eigentlich noch einen größeren datentyp als double?

Vielen Dank für eure Hilfe!

Gruß
Nano
 
Schau noch mal in deinen Unterlagen oder im Netz nach
"scanf_s format"
z.B. msdn scanf_s (externer link)
und auch
"printf format"

MfG bcc-fan

--
C/C++
only just for fun

 
Hallo,

Allgemeiner Tipp: Bei solchen Fehlern hilfts, wenn man entweder mit einem Debugger (externer link) das Programm durchsteppt, oder zwischendrin printf's einfügt. Wenn du dir direkt nach dem Einlesen den eingegebenen Wert ausgeben lässt, wirst du sehen, dass dort schon der Fehler drinnen ist. Mit solchen printf-Überprüfungen kann man Fehler relativ schnell eingrenzen.

Zitat:

double bogenmaß(double wink)



Darf man in C wirklich in Funktionsnamen 'ß' verwenden? Meckert dein Compiler da nicht?

Zitat:

wink = ((2*3.1415926535898)*(wink/360));



Man braucht PI normalerweise nicht selber einfügen. Wenn man die Datei math.h inkludiert, dann gibt es üblicherweise die Konstante M_PI, die genau diesen Wert definiert. Ich schreibe 'üblicherweise', weil mir persönlich keine C-Implementierung bekannt ist, die den Wert nicht definiert, aber laut den C-FAQs (externer link) das nicht immer der Fall sein muss.

mfg, Wolfgang

--
Hex, Bugs and Rock 'n Roll

 
Ohne Gewähr -> der Quelltext sieht nach Microsoft aus.
Da könnte je nach Einstellung des Compilers 'ß' akzeptiert werden.
Hab keinen Compiler von denen aktuell am Start, um das zu testen.

Aber wenn man nicht in Fettnäpfchen treten will, ist es meist sicherer 'ä, ö, ß, ü' nicht in Funktionsnamen zu nutzen.

MfG bcc-fan

--
C/C++
only just for fun

 
Ich habs gelöst!
Vielen Dank für die Hinweise!

Letztendlich lag es am falschen Datentyp.
Ich hab dann irgend wann mal es mit float probiert und schon lief die Sache durc.

ß funktioniert beim MS Compiler 2010, aber ich glabue man sollte es trotzdem einfach lieber lassen. :)

Vielen Dank und macht euch noch ne schöne Zeit!

Gruß
Nano
 
  • (nur registrierte Mitglieder)