Simple C-Funktion

Woddi

Mitglied
Code:
double get_double() {
	double d = 0;
	scanf("%f", &d);
	printf("d = %f\n\n", d);
	return d;
}
Egal was ich mit scanf einlese, der Code gibt bei jeder Eingabe immer nur 0.00000 zurück...

Wo ist der Fehler? *dummguck
 
moin


versuch mal:
Code:
float get_float() {
	float d = 0;
	scanf("%f", &d);
	printf("d = %f\n\n", d);
	return d;
}


mfg
umbrasaxum
 
Hehe, wollt grad posten, dass ich es mit float komischerweise hinbekommen habe... Warum zum Geier aber nicht mit double (das war eigentlich die Vorgabe aus der Hausaufgabe ;))? Naja, soll mir jetzt egal sein, ich lass das so... Darf wohl niemand Ansprüche stellen wenn man über die Semesterferien Aufgaben stellt :D

Aber für die Zukunft wärs doch ganz interessant zu wissen, wie man echte double-Eingaben zulassen kann, da double ja größer ist als float. Hat wer ne Idee?
 
HI !

Versuche es mal so:
PHP:
#include<stdio.h>

double get_double(); // Funktion deklarieren

main(){

  double e = 0;
  e=get_double(); //Funktion aufrufen
  printf("d = %f\n\n",e);

}

double get_double() {
	double d = 0;
	scanf("%lf", &d); // <--- da war dein fehler
	return d;
}
Doubl's einlesen mit "lf" Long Float
Float's einlesen mit "f"

mfg janosch
 
Zuletzt bearbeitet:
Tip am Rande:
Numerische Werte direkt einzulesen, kann gefährlich sein, am besten immer Strings einlesen und dann umwandeln.

Gruss Homer
 
ehrlich gesagt is mir das noch nie passiert... er nimmt dann immer 0, oder eine sehr hohe minuszahl...
is das normal?
 
Zurück