Geldautomat programmieren in C++?
Ich muss einen Geldautomat programmieren, ich soll einen bestimmten Betrag eingeben besipielsweise: 3,55€ muss er mir dann 1x 2€ 3x 0,50€ 2x 0,02€ 1x 0,01 € ausgeben. Also nur mit den werten von 0,01€ bis 2€ höher nicht.
Das hab ich bis jetzt aber komm nicht weiter bin noch ein Anfänger:
#include <iostream>
using namespace std;
int main()
{
float cent;
cout<<"Geben sie bitte einen Betrag ein"<<endl;
cin>>x;
while (cent > 0) {
if (cent >= 1000) {
puts("2€ Münze");
cent-= 200;
} else if (cent >= 100) {
puts("1€ Münze");
cent-= 50;
} else if (cent >= 50) {
puts("0,50-Cent Münze");
cent-= 50;
} else if (cent >= 20) {
puts("20-Cent Münze");
cent -= 20;
} else if (cent >= 10) {
puts("10-Cent Münze");
cent -= 10;
} else if (cent >= 5) {
puts("0.05-Cent Münze");
cent -= 5;
} else if (cent >= 2) {
puts("0.02-Cent Münze");
cent-= 2;
} else if (cent >= 1) {
puts("0.01-Cent Münze");
cent-= 1;
}
}
return 0;
}
1 Antwort
Ich würde es von oben herab lösen.
Bedeutet:
- Füge solange 2€ hinzu, bis der Betrag überschritten wurde. Dann nimm eine 2€ Münze weg.
- Füge solange 1€ hinzu, bis der Betrag überschritten wurde. Dann nimm eine 1€ Münze weg.
- ...
- Füge die fehlenden 1€ Münzen hinzu
Das kann man sicherlich auch in Formeln komprimieren.
- Zuerst <Betrag in Cent> div 200. div gibt den Quotienten ohne Rest zurück. = Anzahl an 2€-Münzen
- Mit dem Rest, also <Betrag> mod 200 arbeitest du weiter, wenn er ungleich 0 ist. Den nimmst du *200, um die verbliebenen Cent zu erhalten.
- Jetzt rechnest du diesen Betrag div 100 für die Anzahl an 1€-Münzen und immer so weiter (Punkt 1 und 2 im Wechsel).
Woher ich das weiß:Berufserfahrung – Programmierer
Dem ist nichts hinzuzufügen.
evtl hilft dir das auch noch weiter, das System ist sehr ähnlich:
Alles Danke ich probiers mal aber bin mir unsicher ob ich das so umsetzen kann