Geldscheinautomat - do-while will nicht?



  • Moin zusammen.
    Ich habe hier einen Code für einen Geldscheinautomaten. Der funktioniert auch genau so, wie ich es von ihm verlange.
    Bis auf die Do-While-Schleife. Das Programm fragt mich lediglich ein Mal nach der Wunschmenge, durchläuft seine Schleife x-Mal, Ende. Aber es soll mich doch ganu so oft fragen, bis ich 0 "Geld" von ihm haben will. (Wo) habe ich hier einen Denkfehler gemacht?

    Würde mich sehr über Antworten freuen.

    #include <stdio.h>
    
    int main()
    {
        int eingabe,i;
        int scheine[10]={1000, 500,200,100,50,20,10,5,2,1};
    
        do
        {
            printf("Geben Sie den Bertrag an: \n");
            scanf("%d",&eingabe);
    
            for(i=0;i<10;i++)
            {
                if(eingabe / scheine[i]!=0)
                printf("%d x %d\n",eingabe/scheine[i],scheine[i]);
                eingabe%=scheine[i];
            }
    
            printf("\n");
    
        }while(eingabe!=0);
    
        return 0;
    }
    


  • eingabe = eingabe % 1 ⚠



  • Moin
    Danke für deine Antwort, aber leider funktioniert das auch nicht 😕



  • Na denk mal nach - welchen Wert hat eingabe am Ende der Schleife, wenn Du irgendwas ausser 0 eingibst?



  • Rest von irgendwas/1 (= irgendwas % 1): immer Null! ⚠



  • Das ist der Fehlergrund, nicht die Lösung.

    Gib bei deinem printf doch noch eingabe mit aus.



  • ScottZhang schrieb:

    eingabe = eingabe % 1 ⚠

    Das war die beste Antwort.


Log in to reply