Steuerprogramm



  • Hallo!

    Ich habe folgendes Programm geschrieben, dass den Mehrwertsteuerbetrag errechnet und mit dem Gesamtbetrag ausgibt.
    Nun soll ich das ganze mit einer while-Schleife erweitern, sehe aber nicht, wo das sinnvoll wäre, bzw., wo sie am besten passen würde.

    #include <stdio.h>
    
    #define MWST 16.0
    
    void main()
    {
    
     float eingabe,steuer,gesbetr;
    
     printf("Geldbetrag:\n");
     scanf("%g",&eingabe);
    
     steuer=eingabe*MWST/100.0;
     gesbetr=eingabe+eingabe*MWST/100.0;
     printf("Mehrwertsteuer: %g\n",steuer);
     printf("Gesamtbetrag: %g\n",gesbetr);
    
     system("pause"); 
    
    }
    

    Danke für die Hilfe!



  • LoL.

    Warum willst du dann eine Schleife bauen????

    Vielleicht damit man verschiedene Geldbeträge eingeben kann bis man dem ganzen überdrüssig wird ? 😉 Also eine Schleife um das ganze Programm.



  • Ich _muss_ das machen, Vorgabe vom Dozenten. Kommt der Sache aber nah, ich glaube, er hat da auch eine Summationsanweisung im Sinn.

    Btw: Was meinst du mit Schleife um das ganze Programm herum?

    😕



  • #include <stdio.h> 
    
    #define MWST 16.0 
    
    void main() 
    { 
    
     float eingabe,steuer,gesbetr; 
    
     do 
     {
       clrscr();
       printf("Geldbetrag:\n"); 
       scanf("%g",&eingabe); 
    
       steuer=eingabe*MWST/100.0; 
       gesbetr=eingabe+eingabe*MWST/100.0; 
       printf("Mehrwertsteuer: %g\n",steuer); 
       printf("Gesamtbetrag: %g\n",gesbetr); 
       printf("\n\n Es ist noch Suppe da, wer will noch nicht, wer hat nochmal? [y/n] :"); 
    
     } while (getch()!='n'); 
    
     system("pause"); 
    
    }
    


  • Bitte anstatt system("pause") das aufrufen, was man an der Stelle wirklich will und zwar eine Benutzereingabe von der Tastatur.

    Außerdem sind wir hier im ANSI-C Forum und PAUSE (was noch dazu ein Consolenbefehl ist), clrscr() und getch() sind nicht ANSI-C sondern Windows spezifisch.

    Nicht zu vergessen, dass vor main() kein void sondern ein int gehört.

    Zum eigentlichen Problem:
    Die einzig sinnvolle Stelle im Moment hat Minimee ja schon aufgezeigt.
    Später macht es wahrscheinlich noch Sinn eine Schleife um die Eingabe der Beträge zu machen, aber dazu wird wahrscheinlich erst das Thema Arrays durchgenommen ;).



  • Stimmt, AJ. Ich soll eine Summationsanweisung hinzufügen.

    Übrigens: Wir nehmen nichts durch, der Herr Dozent lässt uns ales autodidaktisch erschließen.

    Wie könnte ich denn eine Schleife um die Eingabe der Beträge realisieren?



  • Erstmal brauchst du ein Array, in dem du alle Beträge speicherst. Ein Array wird z. B. so definiert:

    double Betraege[100];
    

    Dieses Array hat jetzt 100 Felder, d. h. du kannst 100 Beträge darin speichern.

    Für den Anfang würde ich an deiner Stelle ein Array mit fester Größe verwenden.
    Anstatt deiner Variable eingabe, verwendest du jetzt also das Array. Ein einzelnes Feld sprichst du z. B. so an:

    printf("%lf", Betraege[0]);
    

    Hier wird das erste Feld bzw. Element des Arrays angesprochen. Die Zahl in den Klammern ist ein Index, der bei 0 beginnt. Im Beispiel ist 99 dann der höchste Index für das Array.

    Nun musst du um deine Eingabe der Beträge eine Schleife machen und solange Beträge eingeben lassen, bis dein Array voll ist oder der Benutzer angibt, dass er keine Beträge mehr eingeben will (das kannst du z. B. realisieren, indem der Benutzer einfach gar nichts eingibt).
    Noch ein kleiner Tipp: Für den Index deines Arrays solltest du eine Zählvariable in der Schleife mitführen.

    So jetzt versuch es einfach mal umzusetzen und wenn du Probleme hast, dann frag einfach nochmal nach.



  • Schonmal Danke für die Hilfe, AJ! ich werd jetzt einfach mal was rumtesten!



  • Ich habs!

    Hab alle Probleme beseitigt! Danke!


Anmelden zum Antworten