Die folgende Funktion soll die Anzahl der zurückzugebenden Münzen in
einem Münzwechsler auf Basis MK4 ausrechnen. Übergeben wird der Betrag
in Cent, zurückgegeben wird ein String, der durch Punkte getrennt die
Anzahl der 2€ und 1€ und 50ct-Münzen enthält. Vorbedingung: Der Betrag
muss durch 50ct teilbar sein. Problem: Die Funktion liefert nur bis
950ct brauchbare Ergebnisse, ab 1050 kommt "error". Aber warum? Danke
für Tips.
1 | String mk4_sumout(int sum)
|
2 | {
|
3 | String ret = "error";
|
4 | int mod = sum % 50;
|
5 |
|
6 | if(mod == 0)
|
7 | {
|
8 | int c2 = 0;
|
9 | int c1 = 0;
|
10 | int c5 = 0;
|
11 | while(sum>0)
|
12 | {
|
13 | bool fnd = false;
|
14 | if(!fnd && sum>=200){sum -=200;c2++; fnd=true;}
|
15 | if(!fnd && sum>=100){sum -=100;c1++; fnd=true;}
|
16 | if(!fnd && sum>=50){sum -=50; c5++; fnd=true;}
|
17 | }
|
18 | ret = String(c2)+"."+String(c1)+"."+String(c5);
|
19 | }
|
20 | return ret+"."+String(mod);
|
21 | }
|
Vielleicht bin ich auh nur ein wenig überarbeitet ... :-(