Hi, ich würde etwas Hilfe für meine ProgrammierHausaufgabe brauchen. Hier ist die Angabe:
Code:
3. Geldbetrag
Einzugeben ist ein Geldbetrag in EUR. Anschließend ist auszugeben, wie viele Geldscheine
bzw. M¨unzen h¨ochstens notwendig sind, um den Betrag auszuzahlen.
Beispiel:
Betrag in EUR -> 845.77
1 mal 500 EUR
1 mal 200 EUR
1 mal 100 EUR
0 mal 50 EUR
2 mal 20 EUR
0 mal 10 EUR
1 mal 5 EUR
1 mal 50 Cent
1 mal 20 Cent
0 mal 10 Cent
1 mal 5 Cent
1 mal 2 Cent
0 mal 1 Cent
Hier ist der Code den ich schon selbst geschrieben habe:
Code:
#include <stdio.h>
int main (void) {
double b;
char e500;
char e200;
char e100;
char e50;
char e20;
char e10;
char e5;
char c50;
char c20;
char c10;
char c5;
char c2;
char c1;
printf("Betrag in Euro -->");
scanf("%lf*100", b);
printf(" mal 500Euro \n");
printf(" mal 200Euro \n");
printf(" mal 100Euro \n");
printf(" mal 50Euro \n");
printf(" mal 20Euro \n");
printf(" mal 10Euro \n");
printf(" mal 5Euro \n");
printf(" mal 50Cent \n");
printf(" mal 20Cent \n");
printf(" mal 10Cent \n");
printf(" mal 5Cent \n");
printf(" mal 2Cent \n");
printf(" mal 1Cent \n");
return 0;
}
Wie ihr seht brauche ich noch Hilfe beim scanf und beim printf(man darf auch nur die beiden Befehle verwenden). Ich weiss leider nicht wie ich printf und scanf schreiben soll. Wäre echt sehr dankbar wenn mir da jemand helfen kann.
MfG
PS: Bitte NICHT den fertigen Code hier einfach so posten, sondern eine Erklärung(bei Bedarf aber mit einzelnen Codestücken). Danke
Ich hab dein Beispiel jetzt leicht umgeändert(den Betrag auf Cent umgerechnet), aber wie mache ich jetzt die Ausgabe? Also wie viel 500er Scheine, 200er Scheine usw.?
BTW: Hier ist der Code:
Code:
#include <stdio.h>
int main(void) {
double zahl = 0;
printf("Betrag in Euro --> ");
scanf("%lf*100", &zahl);
return 0;
}
Lass dir ersteinmal deine zahl ausgeben.
Wenn du "123,45" eingibst, wird in zahl trotsdem noch "123,45" stehen, du musst es also nach der Eingabe umrechnen (wenn ich mich jetzt nicht irre).
Hapert es an der Ausgabe oder am Algorithmus?
Wie man eine Zahl ausgibt habe ich oben ja schon gepostet.
Ich würd ma sagen es "hapert" an der Ausgabe und am Algorithmus. Ich hab keine Ahnung wie ich es ausrechnen lassen soll, wie viel man von welchem Wert braucht.
Also als erstes möchtest du ja den Betrag in Cent haben.
Code:
printf("Betrag in Euro --> ");
scanf("%lf", &zahl);
zahl *= 100;
Jetzt musst du abfragen, wieviele Geldscheine bzw. Münzen in diesen Betrag "passen".
Hier solltest du von dem 500€ runter nach 1Cent (in dieser Richtung gehen).
Abfrage für 500€
Code:
if (h = zahl / 50000 > 0) {
printf("%d 500 Euro-Schein(e)\n", h);
zahl -= (h * 50000);
}
Das musst du jetzt noch für die anderen Beträge machen.
Wenn du meinen Code nicht verstehst oder nicht weiter kommst, frag einfach
Bis jetzt haben wir nur printf und scanf gemacht. Also jetzt auch mit Variablen und so^^ Aber ich kann mal kurz im Skriptum nachschauen um sicher zu gehn.
Edit: Sry hab den Post nicht gelesen.
Btw: Bis jetzt haben wir nur printf und scanf gemacht, als nächstes würde putchar und getchar kommen.
Achso, Geldscheine die nicht benutzt werden, sollen trotzdem angezeigt werden okay.
Kannst dir ja mal if-Anweisungen gucken, ist nicht schwer zu verstehen, und noch eine Version damit machen, so dass nicht Scheine mit 0 angezeigt werden.
@Your_Consciene Dazu hab ich noch eine Frage: Muss ich das jetzt immer wieder einfügen und nur von "500 Euro Schein(e)" auf 200 Euro Schein(e) umschreiben? Also so:
Code:
#include <stdio.h>
int main(void) {
double zahl = 0;
printf("Betrag in Euro --> ");
scanf("%lf", &zahl);
zahl *= 100;
h = zahl / 50000;
printf("%d 500 Euro-Schein(e)\n", h);
zahl -= (h * 50000);
h = zahl / 50000;
printf("%d 200 Euro-Schein(e)\n", h);
zahl -= (h * 50000);
h = zahl / 50000;
printf("%d 100 Euro-Schein(e)\n", h);
zahl -= (h * 50000);
return 0;
}
Mir fällt gerade auf, dass in dem Beispiel in deinem Startposting garkeine 2€ und 1€ existieren.
Hat das was zu bedeuten oder wurden die einfach nur vergessen?
K, also ich hab das jetzt mal eben so gemacht wie du es gesagt hast.
Hier ist der Code
Code:
#include <stdio.h>
int main(void) {
double zahl = 0;
printf("Betrag in Euro --> ");
scanf("%lf", &zahl);
zahl *= 100;
h = zahl / 50000;
printf("%d 500 Euro-Schein(e)\n", h);
zahl -= (h * 50000);
h = zahl / 20000;
printf("%d 200 Euro-Schein(e)\n", h);
zahl -= (h * 20000);
h = zahl / 10000;
printf("%d 100 Euro-Schein(e)\n", h);
zahl -= (h * 10000);
h = zahl / 5000;
printf("%d 50 Euro-Schein(e)\n", h);
zahl -= (h * 5000);
h = zahl / 2000;
printf("%d 20 Euro-Schein(e)\n", h);
zahl -= (h * 2000);
h = zahl / 1000;
printf("%d 10 Euro-Schein(e)\n", h);
zahl -= (h * 1000);
h = zahl / 500;
printf("%d 5 Euro-Schein(e)\n", h);
zahl -= (h * 500);
h = zahl / 200;
printf("%d 2 Euro-Muenze(n)\n", h);
zahl -= (h * 200);
h = zahl / 100;
printf("%d 1 Euro-Muenze(n)\n", h);
zahl -= (h * 100);
h = zahl / 50;
printf("%d 50 Cent-Muenze(n)\n", h);
zahl -= (h * 50);
h = zahl / 20;
printf("%d 20 Cent-Muenze(n)\n", h);
zahl -= (h * 20);
h = zahl / 10;
printf("%d 10 Cent-Muenze(n)\n", h);
zahl -= (h * 10);
h = zahl / 5;
printf("%d 5 Cent-Muenze(n)\n", h);
zahl -= (h * 5);
h = zahl / 2;
printf("%d 2 Cent-Muenze(n)\n", h);
zahl -= (h * 2);
h = zahl / 1;
printf("%d 1 Cent-Muenze(n)\n", h);
zahl -= (h * 1);
return 0;
}
Jetzt zeigt mir mein Codeblocks aber 3Errors an, alle in Zeile 3( h = zahl / 50000
Das sind die Errors:
1.) 'h' undeclared (first use in this function)
2.) Each undeclared identifiert is reported only once
3.) for each funtion it appears in
Mir fällt gerade auf, dass in dem Beispiel in deinem Startposting garkeine 2€ und 1€ existieren.
Hat das was zu bedeuten oder wurden die einfach nur vergessen?
Wurden wohl einfach nur vergessen xD Unsere Lehrer sind nicht grad soooo mega klug, was das angeht^^
Die Variable h ist bei dir noch nicht deklariert.
Du musst oben nach "double zahl = 0;" noch "int h = 0;" schreiben. (es ist wichtig, dass du hier int und nicht double verwendest)
Ich hab da noch ne Frage, ein Kumpel von mir braucht auch noch die Aufgabe, und er weiss nicht wies geht, ich natürlich auch nicht.
Er weiss nicht wie das gehn soll und auch nicht wie er es Programmieren soll.
Hier ist mal die Angabe:
Code:
4. Zinsen
Einzugeben sind Kapital, Zinssatz (in Prozent) und Laufzeit (in Jahren, Monaten und
Tagen). Das Programm soll die einfachen bankm¨aßigen Zinsen und das verzinste Gesamtkapital
berechnen (jedes Monat ist mit 30 Tagen und jedes volle Jahr mit 360
Tagen zu rechnen).
Beispiel:
Kapital (in Euro) --> 1234.56
Zinssatz (in %) --> 4.5
Verzinsungsdauer (im Format j-m-d) --> 3-7-12
---------------------------------------------------
Es ergeben sich Zinsen von 200.92 Euro.
Wert des einfach verzinsten Gesamtkapitals: 1435.48 Euro.
Ich wäre echt sehr dankbar wenn ihr ihn helfen könntet. =)
MfG
PS: Diesmal dürft ihr den fertigen Code schon posten^^
Natürlich auch nur mit printf und scanf Anweisungen.
#include <stdio.h>
int main (void) {
double kapital, zinssatz, zinsen;
int j, m, d;
printf("Kapital (in Euro) --> ");
scanf("%lf", &kapital);
printf("Zinssatz (in %) --> ");
scanf("%lf", &zinssatz);
printf("Verzinsungsdauer (im Format j-m-d) --> ");
scanf("%d-%d-%d", &j, &m, &d);
printf("---------------------------------------------------\n");
zinsen = (kapital * zinssatz * (j * 360 + m * 30 + d)) / (100 * 360);
printf("Es ergeben sich Zinsen von %.2f Euro.\n", zinsen);
printf("Wert des einfach verzinsten Gesamtkapitals: %.2f Euro.\n", kapital + zinsen);
system("PAUSE");
return 0;
}
Ich denke, der Code sollte eigentlich leicht verständlich sein.
Außerdem solltet ihr beide mal in eure Unterlagen gucken bzw. mal im Internet nach Ansätzen suchen.
Ich glaube nicht, dass ihr Aufgaben aufbekommt, die ihr eigentlich noch garnicht lösen könnt.
Und bitte macht euch das nächste mal auch selbst Gedanken darüber und postet hier dann eure bisherigen Lösungsansätze.
Edit: Ich habs jetzt mal in Codeblocks reinkopiert. Und ich weiss jetzt nicht was "system("PAUSE");" bedeutet. Das haben wir auch noch nicht gelernt, wenn ich mich recht erinnere.
"system("PAUSE");" macht sozusagen eine Pause, wenn man Enter gedrückt hat, geht es weiter.
Ich bau das immer mit rein, damit sich das Konsolenfenster nicht gleich schließt.
Du kannst die Zeile einfach rauslöschen - das hat keine Auswirkungen auf das Programm.
Okay danke =)
Btw du hast in zeile 10 ein '%' vergessen, es muss doppelt sein sonst wird es nicht ausgegeben
Eines der Dinge die ich mir ausm unterricht gemerkt hab