AlloWed (10.10.11)
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:
- Es sollen mehrere (beliebig viele) Artikel erfasst werden.
- Der Rechnungsbetrag ergibt sich aus der Summe aller Artikelgesamtpreise + die gesamte Mwst.
- 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.
Was checkst du denn an der Rechnung nicht? Was hast du denn versucht?
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.Code:#include <stdio.h> int main() { int iaMenge[1000]; int iZaehler = 0; char szaBezeichnung[100][100]; double daPreis[1000]; double daGesamtpreis[1000]; double dMwst = 0; double dRechnungsbetrag = 0; // Bentutereingaben zur Menge printf("Wie viele Produkte moechten Sie kaufen?\n"); scanf("%d",&iaMenge[iZaehler]); fflush (stdin); while (iaMenge[iZaehler]>0) { // Benutzereingaben zur Bezeichnung printf("Welches Produkt moechten Sie kaufen?\n"); scanf("%s",&szaBezeichnung[iZaehler]); fflush (stdin); // Benutzereingaben zum Produktpreis printf("Wie teuer ist dieses Produkt?\n\n"); scanf("%lf",&daPreis[iZaehler]); fflush (stdin); // Berechnung der Preise daGesamtpreis[iZaehler]=(iaMenge[iZaehler]*daPreis[iZaehler]); dMwst=(daGesamtpreis[iZaehler]*0.19); dRechnungsbetrag=(daGesamtpreis[iZaehler]+dMwst); iZaehler=iZaehler+1; // Lauf-Variable // Benutzereingaben zum Produktnamen printf("Wie viele Produkte moechten Sie kaufen?\n"); scanf("%d",&iaMenge[iZaehler]); fflush (stdin); } return 0; }
Edit: Code nochmal überarbeitet , aber Rechnung funktioniert nicht so ganz :/
Damit überschreibst du den Rechnungsbetrag anstelle ihn zu erhöhen.Code:dRechnungsbetrag=(daGesamtpreis[iZaehler]+dMwst);
a = b weißt a den Wert von b zu, a = a + b erhöht a um den Wert von b.
AlloWed (10.10.11)
Okay , danke ich werde es nochmal versuchen.
Edit: Okay , Code nochmal überarbeitet jedoch kommt als Ergebnis 0,0000000 raus.
Hier der Code :
Code:#include <stdio.h> #include <iostream> #include <cstdlib> using namespace std; int main() { int iaMenge[1000]; int iZaehler = 0; char szaBezeichnung[100][100]; double daPreis[1000]; double daGesamtpreis[1000]; double dMwst = 0; double dRechnungsbetrag = 0; // Bentutereingaben zur Menge printf("Wie viele Produkte moechten Sie kaufen?\n"); scanf("%d",&iaMenge[iZaehler]); fflush (stdin); while (iaMenge[iZaehler]>0) { // Benutzereingaben zur Bezeichnung printf("Welches Produkt moechten Sie kaufen?\n"); scanf("%s",&szaBezeichnung[iZaehler]); fflush (stdin); // Benutzereingaben zum Produktpreis printf("Wie teuer ist dieses Produkt?\n\n"); scanf("%lf",&daPreis[iZaehler]); fflush (stdin); // Berechnung der Preise daGesamtpreis[iZaehler]=iaMenge[iZaehler]*daPreis[iZaehler]; dMwst=daGesamtpreis[iZaehler]*0.19; dRechnungsbetrag=daGesamtpreis[iZaehler]+dMwst; iZaehler=iZaehler+1; // Lauf-Variable system("CLS"); printf("Das Ergebnis lautet: %lf%lf%lf", daGesamtpreis, dMwst, dRechnungsbetrag); // Benutzereingaben zum Produktnamen printf("Wie viele Produkte moechten Sie kaufen?\n"); scanf("%d",&iaMenge[iZaehler]); fflush (stdin); } return 0; }
daGesamtpreis ist ja ein Array ... Muss man nicht immer einen Index angeben, wenn man eienn Wert aus einem Array ausgeben möchte?Code:printf("Das Ergebnis lautet: %lf%lf%lf", daGesamtpreis, dMwst, dRechnungsbetrag);
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.
Lesezeichen