Getränkeautomat, was stimmt nicht?
-
Hallo
was stimmt hier nicht:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>int main () {
float muenzeinwurf;
int einwurf;muenzeinwurf = 0.0000;
einwurf = 0;printf("Gertänkeautomat\n\n\n\n");
printf("Was möchten Sie kaufen?\n\nCola 0,80€\nPepsi 0,80€\nFanta 0,80€\nSchwip Schwap 0,80€\n\n\n\n");
printf("Was möchten Sie einwerfen?\n\n1 0,10€\n2 0,20€\n3 0,50€\n4 1,00€\n\n");
printf("Muenzeinwurf: %d\n\n\n\n", muenzeinwurf);
scanf("%d", &einwurf);
if (einwurf == 1) muenzeinwurf = muenzeinwurf + 0.1000;
printf("Muenzeinwurf: %f\n\n", einwurf);
system("PAUSE");
return 0;
}Bei muenzeinwurf kommt immer 0.000000 raus auch wenn ich bei eigabeaufforderung 1 eingebe. Hab ein anderes Programm mit Eingabeauffdorderung gemagt bei der auch 2 Variablen addiert werden,das geht alles?
Ich benutze Dev cpp
mfg
-
Bist Du Dir sicher, dass Du die Variable "einwurf" und nicht die Variable "Muenzeinwurf" ausgeben möchtest?
Wenn ja, dann schreib lieber:
printf("Muenzeinwurf: %i\n\n", einwurf);da es sich um ein Integer handelt.
-
Doch, Muenzeinwurf soll ausgegeben werden. Muenzeinwurf ist ein float.
Einwurf ist nur die Münzart:
1 0,10€
2 0,20€
...
-
Kannst du lesen?
Wenn du Muenzeinwurf ausgeben willst, musst du auch muenzeinwurf ausgeben und nicht einwurf.
-
Da hast du recht. Das ich das nicht gesehen hab...
-
...manchmal sieht man den Wald vor lauter Bäumen nicht
-
Luk84 schrieb:
Da hast du recht. Das ich das nicht gesehen hab...
Guckst du dir die Compilermeldungen an.
Du hast bei printf ein %f für float angegeben, aber ein int als Paramter übergeben.
Der Compiler erkennt das und gibt dafür eine Warnung aus.Darum: Behandle Warnungen wie Fehler und beseitige diese.
Wenn du keine Warnung bekommen hast, musst du den Warnlevel in den Compiler und/oder Projektoptionen einstellen.