Stannis
Lieutenant
- Registriert
- Juli 2011
- Beiträge
- 549
Tut mir leid, dass Ich mit so einer Kleinigkeit hier reinpoltere, aber Ich habe gerade niemanden sonst an der Hand.
Ich programmiere gerade sehr rudimentär nach Handbuch, Aufgabe ist es, einen Getränkeautomaten zu programmieren.
Mein Code (noch nicht fertig, nur Getränk 1 imo anwählbar, das ist aber nicht das Problem):
Das Problem: Manchmal - nicht immer, sondern scheinbar nur bei einer bestimmten Abfolge eingeworfener "Münzen" (repräsentiert durch die Eingabe von z.B. 0.2 für 0.20€) gibt mir das Programm aus, dass noch 0€ zu zahlen sind, und verlässt die Schleife erst, wenn Ich eigentlich zu viel gezahlt habe.
Shell:
Ich habe wirklich überlegt, aber Ich versteh's nicht. Ich habe in die Schleifenbedingung doch ganz ausdrücklich ">" und nicht ">=" geschrieben
Ich programmiere gerade sehr rudimentär nach Handbuch, Aufgabe ist es, einen Getränkeautomaten zu programmieren.
Mein Code (noch nicht fertig, nur Getränk 1 imo anwählbar, das ist aber nicht das Problem):
Code:
#include <stdio.h>
int main(){
int g=0;
printf("Servus. Wählen Sie Ihr Getränk:\n1) Wasser (0,50€)\n2) Cola (1,00€)\n3) Limo (1,50€)\n");
scanf("%d", &g); // Getränkewahl
int anzahl; // gewünschte Menge
float geld, einwurf; // geld = zu zahlende Summe, einwurf = repräsentiert Münzeinwurf
if(g=1){
printf("Anzahl?\n");
scanf("%d", &anzahl); // Mengenwahl
geld = anzahl*0.5;
printf("Werfen Sie %.2f € ein\n", geld);
while(geld > 0){
printf("Es fehlen noch %.2f €\n", geld);
scanf("%f", &einwurf);
geld=geld-einwurf; // Restgeld-Berechnung
}
printf("Danke. Entnehmen Sie ihr viskoses Eigentum\n");
}
}
Das Problem: Manchmal - nicht immer, sondern scheinbar nur bei einer bestimmten Abfolge eingeworfener "Münzen" (repräsentiert durch die Eingabe von z.B. 0.2 für 0.20€) gibt mir das Programm aus, dass noch 0€ zu zahlen sind, und verlässt die Schleife erst, wenn Ich eigentlich zu viel gezahlt habe.
Shell:
Code:
Servus. Wählen Sie Ihr Getränk:
1) Wasser (0,50€)
2) Cola (1,00€)
3) Zitronenlimonade (1,50€)
1
Anzahl?
4
Werfen Sie 2.00 € ein
Es fehlen noch 2.00 €
1
Es fehlen noch 1.00 €
0.5
Es fehlen noch 0.50 €
0.2
Es fehlen noch 0.30 €
0.1
Es fehlen noch 0.20 €
0.2
Es fehlen noch 0.00 €
0
Es fehlen noch 0.00 €
0.1
Danke. Entnehmen Sie ihr viskoses Eigentum
Ich habe wirklich überlegt, aber Ich versteh's nicht. Ich habe in die Schleifenbedingung doch ganz ausdrücklich ">" und nicht ">=" geschrieben