Nabend Leute,
könnt ihr mir sagen, was bei diesem (eig. simplen) Vergleichstest falsch ist?
Wenn ich eine Zahl<0 eingebe, dann wird 1 zurückgegeben und bei einer eingegebenen Zahl>0 wird -1 zurückgegeben :s
#include <stdio.h>
int check (double d) {
if (d>0) return 1;
else if(d<0) return -1;
else return 0;
}
int main() {
double zahl;
int wert;
printf("Zahl eingeben\n");
scanf("%f",&zahl);
wert=check(zahl);
printf("%i\n",wert);
system("PAUSE");
return 0;
}
Gruß Kilian
was ist an dem Code falsch?
Moderator: Moderatoren
- beafraid88
- Beiträge: 99
- Registriert: Sa 25. Okt 2008, 17:34
- Wohnort: Aachen/Düsseldorf/Mönchengladbach
Re: was ist an dem Code falsch?
du hast hier zwei möglichkeiten.
Entweder:
oder
Weil sonst versuchst du bei dir einen float einzulesen um ihn dann als double zu intepretieren
Entweder:
Code: Alles auswählen
float zahl;
scanf("%f",&zahl);
oder
Code: Alles auswählen
double zahl;
scanf("%lf",&zahl);
Мои пять копеек