Warum klappts mit int und float nur mit Double nicht?

Neue Frage »

Auf diesen Beitrag antworten »
tumu36 Warum klappts mit int und float nur mit Double nicht?

Hi Leute!
Ich nutze C und die Aufgabe ist eigentlich ganz einfach. Und zwar geht es darum, 2 Zahlen vom Typ double einzugeben, diese miteinander zu vergleichen und dann die kleinere Zahl Ausgeben lassen.

Mein Programm sieht wie folgt aus und funktioniert, wenn ich statt den gewünschten Double, Integer oder Float Variablen nehme! So wie es jetzt hier steht gibt es immer "0.00000 is smaller than 0.00000" aus. unglücklich


#include <stdio.h>

int main()
{
double num1=0.00, num2=0.00;

printf("Enter the numbers you want to compare:\n");
scanf("%f", &num1);
scanf("%f", &num2);

if(num1<num2){
printf("%f is smaller than %f!", num1, num2);
}else{
printf("%f is smaller than %f!", num2, num1);
}

return 0;
}

Was mache ich falsch und warum klappts mit den doubles nicht?
 
Auf diesen Beitrag antworten »
eulerscheZahl

Und deshalb schaut man sich die Warnungen des Compilers an.
code:
1:
2:
3:
4:
5:
6:
code.c: In function ‘main’:
code.c:8:7: warning: format ‘%f’ expects argument of type ‘float *’, but argument 2 has type ‘double *’ [-Wformat=]
 scanf("%f", &num1);
       ^
code.c:9:7: warning: format ‘%f’ expects argument of type ‘float *’, but argument 2 has type ‘double *’ [-Wformat=]
 scanf("%f", &num2);


Wenn du ein double hast, musst du mit %lf einlesen.
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »