[C] Frage bzw Problem.

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • [C] Frage bzw Problem.

      Ich habe eine Frage zu C , wir haben von unserem Lehrer folgende Hausaufgaben aufbekommen , wo wir die while bzw. for schleife üben sollen.

      Erweitern Sie das Programm Rechnungserstellung wie folgt:

      1. Es sollen mehrere (beliebig viele) Artikel erfasst werden.
      2. Der Rechnungsbetrag ergibt sich aus der Summe aller Artikelgesamtpreise + die gesamte Mwst.
      3. Die Eingabe der Artikel soll beendet werden, wenn der Bernutzer für die Menge 0 eingibt.

      Ich versteh ja was gemeint ist , auch mit der for schleife nur bei der Rechnung spinnt er mir rum.

      Ich hoffe ihr könnt mir helfen.

      Mfg.
      Setzt sich aus 3 Schleifen zusammen sagte unser Lehrer , einmal für die Aufzählung von Preis und Bezeichnung und für die Ausgabe.
    • Werbung zur Unterstützung des Forums ( Bitte AddBlocker deaktivieren )

    • Grandcore;263470 schrieb:

      Was checkst du denn an der Rechnung nicht? Was hast du denn versucht?

      Quellcode

      1. #include <stdio.h>
      2. int main()
      3. {
      4. int iaMenge[1000];
      5. int iZaehler = 0;
      6. char szaBezeichnung[100][100];
      7. double daPreis[1000];
      8. double daGesamtpreis[1000];
      9. double dMwst = 0;
      10. double dRechnungsbetrag = 0;
      11. // Bentutereingaben zur Menge
      12. printf("Wie viele Produkte moechten Sie kaufen?\n");
      13. scanf("%d",&iaMenge[iZaehler]);
      14. fflush (stdin);
      15. while (iaMenge[iZaehler]>0)
      16. {
      17. // Benutzereingaben zur Bezeichnung
      18. printf("Welches Produkt moechten Sie kaufen?\n");
      19. scanf("%s",&szaBezeichnung[iZaehler]);
      20. fflush (stdin);
      21. // Benutzereingaben zum Produktpreis
      22. printf("Wie teuer ist dieses Produkt?\n\n");
      23. scanf("%lf",&daPreis[iZaehler]);
      24. fflush (stdin);
      25. // Berechnung der Preise
      26. daGesamtpreis[iZaehler]=(iaMenge[iZaehler]*daPreis[iZaehler]);
      27. dMwst=(daGesamtpreis[iZaehler]*0.19);
      28. dRechnungsbetrag=(daGesamtpreis[iZaehler]+dMwst);
      29. iZaehler=iZaehler+1; // Lauf-Variable
      30. // Benutzereingaben zum Produktnamen
      31. printf("Wie viele Produkte moechten Sie kaufen?\n");
      32. scanf("%d",&iaMenge[iZaehler]);
      33. fflush (stdin);
      34. }
      35. return 0;
      36. }
      Alles anzeigen
      Problem ist , er listet nicht alles auf sondern man macht eine Eingabe danach kommt Müll raus. Das ende des Codes sollte halt in einer Tabelle sein.

      Edit: Code nochmal überarbeitet , aber Rechnung funktioniert nicht so ganz :/
    • Well;263474 schrieb:

      Quellcode

      1. dRechnungsbetrag=(daGesamtpreis[iZaehler]+dMwst);
      Damit überschreibst du den Rechnungsbetrag anstelle ihn zu erhöhen.
      a = b weißt a den Wert von b zu, a = a + b erhöht a um den Wert von b.


      Okay , danke ich werde es nochmal versuchen.

      Edit: Okay , Code nochmal überarbeitet jedoch kommt als Ergebnis 0,0000000 raus.

      Hier der Code :

      C-Quellcode

      1. #include <stdio.h>
      2. #include <iostream>
      3. #include <cstdlib>
      4. using namespace std;
      5. int main()
      6. {
      7. int iaMenge[1000];
      8. int iZaehler = 0;
      9. char szaBezeichnung[100][100];
      10. double daPreis[1000];
      11. double daGesamtpreis[1000];
      12. double dMwst = 0;
      13. double dRechnungsbetrag = 0;
      14. // Bentutereingaben zur Menge
      15. printf("Wie viele Produkte moechten Sie kaufen?\n");
      16. scanf("%d",&iaMenge[iZaehler]);
      17. fflush (stdin);
      18. while (iaMenge[iZaehler]>0)
      19. {
      20. // Benutzereingaben zur Bezeichnung
      21. printf("Welches Produkt moechten Sie kaufen?\n");
      22. scanf("%s",&szaBezeichnung[iZaehler]);
      23. fflush (stdin);
      24. // Benutzereingaben zum Produktpreis
      25. printf("Wie teuer ist dieses Produkt?\n\n");
      26. scanf("%lf",&daPreis[iZaehler]);
      27. fflush (stdin);
      28. // Berechnung der Preise
      29. daGesamtpreis[iZaehler]=iaMenge[iZaehler]*daPreis[iZaehler];
      30. dMwst=daGesamtpreis[iZaehler]*0.19;
      31. dRechnungsbetrag=daGesamtpreis[iZaehler]+dMwst;
      32. iZaehler=iZaehler+1; // Lauf-Variable
      33. system("CLS");
      34. printf("Das Ergebnis lautet: %lf%lf%lf", daGesamtpreis, dMwst, dRechnungsbetrag);
      35. // Benutzereingaben zum Produktnamen
      36. printf("Wie viele Produkte moechten Sie kaufen?\n");
      37. scanf("%d",&iaMenge[iZaehler]);
      38. fflush (stdin);
      39. }
      40. return 0;
      41. }
      Alles anzeigen
    • Quellcode

      1. printf("Das Ergebnis lautet: %lf%lf%lf", daGesamtpreis, dMwst, dRechnungsbetrag);

      daGesamtpreis ist ja ein Array ... Muss man nicht immer einen Index angeben, wenn man eienn Wert aus einem Array ausgeben möchte?
      Und füg mal irgendein Zeichen zwischen die %lf ein, dann kannt du die einzelnen Werte besser auseinander halten.
    • Well;263478 schrieb:

      Quellcode

      1. printf("Das Ergebnis lautet: %lf%lf%lf", daGesamtpreis, dMwst, dRechnungsbetrag);
      daGesamtpreis ist ja ein Array ... Muss man nicht immer einen Index angeben, wenn man eienn Wert aus einem Array ausgeben möchte?
      Und füg mal irgendein Zeichen zwischen die %lf ein, dann kannt du die einzelnen Werte besser auseinander halten.


      Stimmt.... nur wie soll ich das anstellen , so ? printf("%lf",iZaehler);

      Mfg.

      printf("Das Ergebnis lautet: %lf %lf% %lf", daGesamtpreis[iZaehler], dMwst, dRechnungsbetrag);

      So habe ich es nochmal versucht , aber nichts .... wieder das selbe Ergebnis , selbst wenn ich versuche den Index als Bezug zu nehmen.