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.


Anmelden zum Antworten