Forum: PC-Programmierung Was ist hier falsch? (C)


von Simon N. (ardi)


Lesenswert?

Hi,
ich arbeite aus Langeweile an einem "Getränkeautomaten" Programm.
Nun habe ich bei dem Part, bei dem die Eingabe weniger ist als das was 
gefordert wird ein Problem:
Wenn ich weniger als 1 eingebe dann kommt ein ewiges "Gewusel" im 
Programm.
Code:
1
if(summe<1){
2
        while(summe<1){
3
            fehlend=1-summe;
4
            printf("Es fehlt: %d Euro. Bitte geben sie diesn Betrag noch ein.", fehlend);
5
            if(summe==1){
6
                continue;
7
            }
8
        }
9
10
    }

Danke und Gruß

von ttt (Gast)


Lesenswert?

Wie wär s mit dem ganzen Programm?  Wie sind die Variablen deklariert?

von Julian B. (julinho)


Lesenswert?

nach [if(summe<1)]

wird summe nicht mehr verändert, d.h.

dieser Zustand wird der Zustand  [if(summe==1)] nie erreicht

von dadada (Gast)


Lesenswert?

Summe wird in der while schleife nicht geaendert und damit ist die while 
bedingung immer erfuellt wenn sie einmal erfuellt ist.

von Simon N. (ardi)


Lesenswert?

Wie kann ich dann prüfen, ob nun wirklich 1 nach dem er weniger 
eingegeben ist?

von ttt (Gast)


Lesenswert?

Simon Name schrieb:
> Wie kann ich dann prüfen, ob nun wirklich 1 nach dem er weniger
> eingegeben ist?

Wo wird die neue Summe eingelesen?

von Sven P. (Gast)


Lesenswert?

Da ist auch sicherlich noch was faul an den Datentypen. '%d' ist für 
Ganzzahlen...

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Und noch einmal: In Deinem Programmabschnitt erfolgt keinerlei Eingabe! 
Folglich kann auch nicht der Wertebereich der (nicht erfolgten) Eingabe 
überprüft werden.

von Simon N. (ardi)


Lesenswert?

Ok Sven P. hat mich drauf gebracht:
Ich habe in dem Beispiel Wasser für 1 (€) und wenn ich es ausprobiert 
habe mit weniger (also muss es eine Kommazahl sein) ging es nicht.
Nun ist jetzt die Frage:
Wie kann ich es auch machen dass ich Kommazahlen eingeben kann und 
Ganzzahlen?

von Rolf Magnus (Gast)


Lesenswert?

Simon Name schrieb:
> Wie kann ich es auch machen dass ich Kommazahlen eingeben kann und
> Ganzzahlen?

Du bist nicht verpflichtet, ein Komma einzugeben. Lässt du es weg, 
bekommst du eben eine Zahl mit 0 hinter dem Komma.
Dein Problem ist aber immer noch, daß du in der Schleife nirgends eine 
Eingabe abfragst und sich daher der Wert auch nie mehr ändern kann.

von Simon N. (ardi)


Lesenswert?

Wie könnte man das lösen?

von Uhu U. (uhu)


Lesenswert?

Simon Name schrieb:
> Wie könnte man das lösen?

Indem du einen neuen Rechner kaufst ;-)

: Bearbeitet durch User
von Simon N. (ardi)


Lesenswert?

Jetzt mal im Ernst:
Gibt es nicht irgenwie wie "%d" oder "%c" in einem also für Komma und 
Ganzzahlen?
Und wie könnte man das machen mit dem while Problem?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Simon Name schrieb:
> Gibt es nicht irgenwie wie "%d" oder "%c" in einem also für Komma und
> Ganzzahlen?

Lies ein C-Buch. Kein Online-Tutorial, ein richtiges C-Buch.

> Und wie könnte man das machen mit dem while Problem?

Beschäftige Dich mit Algorithmen. Das muss gar nicht in einer richtigen 
Programmiersprache sein, das kannst Du mit Zettel und Stift auch von 
Hand aufmalen.

Hilfreich sind hier beispielsweise Struktogramme.

Zerlege das Problem in Einzelschritte.

von cppler (Gast)


Lesenswert?

Kauf Dir ein C-Buch oder besser C++ und arbeite es durch.

von Simon N. (ardi)


Lesenswert?

Ich habe das Buch C How to
Und auf diese Frage, wenn es geht, kann man ja eine Antwort geben und 
wenn man es nicht weiß dann muss man nicht gleich ein "Buchtipp" geben.
Und danke für den Struktorgramm Tipp
Das war zum Beispiel hilfreich.

von ttt (Gast)


Lesenswert?

Simon Name schrieb:
> Wie könnte man das lösen?

Rechne in Cent. Dann gibt es nur ganze Zahlen.

von Simon N. (ardi)


Lesenswert?

Das kommt aber auch ein bisschen doof wenn ich für zum Beispiel Bier 250 
ct verlange :)

von cppler (Gast)


Lesenswert?

Simon Name schrieb:
> Ich habe das Buch C How to
> Und auf diese Frage, wenn es geht, kann man ja eine Antwort geben und
> wenn man es nicht weiß dann muss man nicht gleich ein "Buchtipp" geben.
> Und danke für den Struktorgramm Tipp
> Das war zum Beispiel hilfreich.

Wenn Du ein Buch hast, warum verstehst Du dann grundlegende Dinge nicht 
?
Ein Struktogramm kann helfen bedeutet aber nicht das Du weißt was Du 
damit machst.
Ob Du einen Programmablauf visuell oder in einer Beschreibungssprache 
oder einer Programmiersprache verfaßt ändert nichts an Deinem 
Grundproblem das Du den notwendigen Ablauf aktuell nicht erkennst.
Fang also bei Null an und arbeite Dich langsam bis zu Zustandautomaten 
durch.
Dann weißt Du wie es geht und kannst gezielt Verständnissfragen stellen.
Schreibe Dir im Klartext auf was getan werden soll und versuche zu 
verstehen wie man das formal umsetzt.
Dazu mußt Du aber die Grundlagen können.

von EGS (Gast)


Lesenswert?

Und wer sagt, das du das Komma in deiner anzeige auch nicht 
selbstbestimmt setzen kannst?!

Du kannst ja ansinsten auch die Werte multiplizieren und dividieren...

von Uhu U. (uhu)


Lesenswert?

Leg dir "Programmieren in C" von Brian W. Kernighan und Dennis M. 
Ritchie  zu und arbeite das durch.

von ttt (Gast)


Lesenswert?

Simon Name schrieb:
> Das kommt aber auch ein bisschen doof wenn ich für zum Beispiel
> Bier 250
> ct verlange :)

Das ist aber nicht so doof wie Gewusel.

Fang mit ganzen Zahlen an. Wenn es dann läuft, kannst du immer noch auf 
floating point umstellen.

von Rolf Magnus (Gast)


Lesenswert?

Simon Name schrieb:
> Jetzt mal im Ernst:
> Gibt es nicht irgenwie wie "%d" oder "%c" in einem also für Komma und
> Ganzzahlen?

Nochmal: Dich zwingt keiner, bei der Eingabe ein Komma anzugeben. Wieso 
glaubst du also, irgendeine Unterscheidung zu brauchen? Eine Zahl ohne 
Komma ist für dich einfach eine Kommazahl mit einer 0 hinter dem Komma.

> Und wie könnte man das machen mit dem while Problem?

Ich würde dir vorschlagen, selbst darüber nachzudenken. Wenn dir das 
fertig vorgekaut wird, wirst du es nicht besser lernen.

von ttt (Gast)


Lesenswert?

Da hat doch einer keinen Bock auf Hausaufgaben!

von Michael H. (michael_h45)


Lesenswert?

Simon Name schrieb:
> Was ist hier falsch?

>
1
>             printf("Es fehlt: %d Euro. Bitte geben sie diesn Betrag noch 
2
> ein.", fehlend);
3
>

es fehlt ein 'e'.

von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

Michael H. schrieb:
> Simon Name schrieb:
>> Was ist hier falsch?
>
>>
1
>>             printf("Es fehlt: %d Euro. Bitte geben sie diesn Betrag noch
2
>> ein.", fehlend);
3
>>
>
> es fehlt ein 'e'.

YMMD

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Simon Name schrieb:
> Und auf diese Frage, wenn es geht, kann man ja eine Antwort geben und
> wenn man es nicht weiß dann muss man nicht gleich ein "Buchtipp" geben.

Du kannst natürlich auch mit dem Fuß aufstampfen und "Ich will aber" 
sagen, aber C lernen tust Du auf die Weise nicht. Und Du bist es, der 
hier C lernen muss (und hoffentlich auch will).

Und wie man mit printf-Formatspezifierern Zahlen ausgeben kann, was es 
für Datentypen für die Speicherung und Verarbeitung von Zahlen gibt, das 
steht in einem C-Buch drin.

Natürlich könnte irgendwer, der mehr von C versteht als Du, Dir 
irgendwas hinbasteln, was in etwa das macht, was du als Anforderung 
beschrieben hast -- aber davon lernst Du nichts.

Der Ansatz, der in diesem Forum aber überwiegend verfolgt wird, ist der 
der Hilfe zur Selbsthilfe. Keine vorgefertigte Lösung, sondern Hinweise, 
wie Du selbst zur Lösung kommen kannst.

Bei so eklantanten Defiziten, wie ich sie bei Dir feststelle, sehe ich 
aber, daß Du Dein Projekt erst mal beiseite legen solltest und Dir einen 
Teilaspekt davon herauspicken solltest, wie zum Beispiels die Ein- und 
Ausgabe numerischer Werte und deren Speicherung und Verarbeitung. 
Grundlage dafür sind die oben schon erwähnten Datentypen.

von Simon N. (ardi)


Lesenswert?

Ich möchte aber keine Lösungen sondern nur ein Tipp ob es sowas wie für 
Komma und Ganzzahlen zusammen gibt.
Ich fordere hier keine Lösungen und für meinen Teil kann ich am Besten 
lernen wenn ich eine Frage habe, dass mir die Antwort gesagt wurde und 
ich diese Antwort dann ANWENDEN kann.
Wenn ich darauf einfach nicht komme und mir niemand diesen Tipp geben 
mag dann kann ich schon mal gar nicht lernen.
Gruß

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Simon Name schrieb:
> ob es sowas wie für
> Komma und Ganzzahlen zusammen gibt.

Und was stellst Du Dir darunter vor?

Versuch das doch mal so zu erklären, daß es auch jemand versteht, der 
Dein Programmgewächs da oben sich nicht angesehen hat.

von Simon N. (ardi)


Lesenswert?

Also %d und %f zusammen

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Und was soll wann wie dabei herauskommen?

Beschreibe das doch mal anhand von zwei, drei Beispielen.

von cppler (Gast)


Lesenswert?

Simon Name schrieb:
> Also %d und %f zusammen

Schön,
dann schreibe Dir Deinen eigenen Datentyp in C++.
Das ist möglich wenn Du weißt wie man in C++ Datentypen als eigene 
Objekte erzeugt und wie die dazu passenden Operatoren überladen werden, 
ein Beispiel dazu z.B. hier:
http://www.cpp-tutor.de/cpp/le12/ueberl_spez.html
Dann kannst Du via << und >> Deinen Datentyp passend lesen und schreiben 
...

von Simon N. (ardi)


Lesenswert?

Also wenn bei mir oben etwas 2 euro kostet und ich nur 1.5 Euro gebe 
soll noch die Summe berechnet werden wie viel er raus bekommt.
Es kann aber auch sein dass er genau 2 gibt oder 1 also Ganzzahlen.
Deswegen brauche ich eine deklaration von beidem (Komma und Ganz)

von Simon N. (ardi)


Lesenswert?

Ok, also ich habe mich nie mit c++ befasst.

von mar IO (Gast)


Lesenswert?

Erklär mal was eine Ganzzahl und eine Kommazahl ist bzw. was keine ist. 
Ich vermute mal, Du kennst den Unterschied nicht wirklich...

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Simon Name schrieb:
> Es kann aber auch sein dass er genau 2 gibt oder 1 also Ganzzahlen.
> Deswegen brauche ich eine deklaration von beidem (Komma und Ganz)

Nein. Brauchst Du nicht.

Wozu auch?

Was ist der Unterschied zwischen 1 EUR und 1.00 EUR?

von Mark B. (markbrandis)


Lesenswert?

Simon Name schrieb:
> Das kommt aber auch ein bisschen doof wenn ich für zum Beispiel Bier 250
> ct verlange :)

Womit man intern rechnet und was man außen hin ausgibt sind zwei paar 
Schuhe. Niemand hindert dich daran, eine Funktion zu schreiben die einen 
Wert von 250 übergeben bekommt und die diesen Wert als "2,50 Euro" auf 
dem Bildschirm ausgibt.

: Bearbeitet durch User
von Simon N. (ardi)


Lesenswert?

ich meine ja nicht 1.00 sondern so Zahlen wie 0.75 oder so
Und Ganzzahlen sind z.B 1 oder 59 und Kommazahlen 134.2645 also auch 
0.54

von Amateur (Gast)


Lesenswert?

Bei Verkaufsautomaten wird üblicherweise der gewünschte Betrag 
angezeigt. Wirfst Du jetzt 10 Cent ein, so wird der geforderte Betrag 
MINUS der 10 Cent angezeigt. Diese Ausgabe erfolgt, bis genügend Geld 
eingeworfen wurde. Dann wird allerdings nicht 0,00 angezeigt, sondern 
mit der Warenausgabe begonnen.
Höfliche Automaten "sagen" dies auch.

Drei Tipps:
1. Wenn Du mal ein C-Buch schauen würdest, wüstest Du, das es bei
   einer Sequenz mit continue kaum etwas Wichtigeres gibt als das WO.
   Also ein etwas umfangreicherer Programmauszug nötig wäre.
2. Bei der Währungsrechnung ist es am Sinnvollsten in Cent zu rechnen.
   Du ersparst Dir damit den Ganzen Ärger mit Rundungsfehlern und
   ähnlichem.
3. Eine Ausgabe mit Komma ist normalerweise eine rein "optische"
   Angelegenheit. Behandle sie also auch so. Also Ausgabe alles was
   größer als 100 Cent ist, dann ein Komma einfügen, anschließend die
   Cent ausgeben. Damit sparst Du die, u.U. recht große
   Fließkommabibliothek, die bei kleinen Mikroprozessoren manchmal das
   Flash zum Überlaufen bringt.
   Darüber hinauswird die Ausgabe in Teuro + Cent verwendet, auch wenn
   nur Cent gefordert werden.

von Simon N. (ardi)


Lesenswert?

Ok ich überlege es mir mal

von cppler (Gast)


Lesenswert?

Amateur schrieb:
> Also Ausgabe alles was größer als 100 Cent ist ...

hüstel
Äh >99 Cent ROFL ;-)

Das eigentliche Problem hat der TE aber immer noch nicht erkannt, da 
helfen wohl auch keine Pillen mehr ...

von Amateur (Gast)


Lesenswert?

@cppler

99 Cent sind 0, für die Euros, ein Komma und 99, für die Cent - nach der 
oben vorgeschlagenen Logik.

Null ist das übliche Zeichen in der Mathematik, für nix, falls Dir das 
nicht bekannt ist. Üb' einfach nochmal. Soweit mir bekannt kennen 
Computer "nix" auch gar nicht, weshalb Dein Problem wohl einzigartig 
sein sollte.

von Dumdi D. (dumdidum)


Lesenswert?

Amateur schrieb:
> @cppler
>
> 99 Cent sind 0, für die Euros, ein Komma und 99, für die Cent - nach der
> oben vorgeschlagenen Logik.
>
> Null ist das übliche Zeichen in der Mathematik, für nix, falls Dir das
> nicht bekannt ist. Üb' einfach nochmal. Soweit mir bekannt kennen
> Computer "nix" auch gar nicht, weshalb Dein Problem wohl einzigartig
> sein sollte.

@Amateur: Nomen est omen? Was cppler wohl meinte war >99 anstelle von 
>100. Du meintest vermutlich wirlich >=100, was >99 entspricht

von cppler (Gast)


Lesenswert?

Amateur schrieb:
> @cppler
>
> 99 Cent sind 0, für die Euros, ein Komma und 99, für die Cent - nach der
> oben vorgeschlagenen Logik.
>
> Null ist das übliche Zeichen in der Mathematik, für nix, falls Dir das
> nicht bekannt ist. Üb' einfach nochmal. Soweit mir bekannt kennen
> Computer "nix" auch gar nicht, weshalb Dein Problem wohl einzigartig
> sein sollte.

><((((º> *remouladereich*

von Rolf Magnus (Gast)


Lesenswert?

Simon Name schrieb:
> Also wenn bei mir oben etwas 2 euro kostet und ich nur 1.5 Euro gebe
> soll noch die Summe berechnet werden wie viel er raus bekommt.
> Es kann aber auch sein dass er genau 2 gibt oder 1 also Ganzzahlen.
> Deswegen brauche ich eine deklaration von beidem (Komma und Ganz)

Ich hab dir jetzt aber schon zweimal geschrieben, daß dich keiner 
zwingt, ein Komma einzugeben. Du hast es zweimal ignoriert. Wenn du 2 
eingibst, kommt auch eine Kommazahl raus, in der dann eben 2,0 steht. 
Wozu solltest du dir also die Mühe machen zu erkennen, ob eine Zahl mit 
oder ohne Komma eingegeben wurde, dann unterschiedliche Datentypen dafür 
verwenden, Berechnungen etsprechend machen und dann bei der Ausgabe auch 
wieder unterscheiden? Ein float ist auch in der Lage, die Zahl 2 zu 
speichern.

von Garden (Gast)


Lesenswert?

Das Kaffeautomaten-Projekt auf ET-Tutorials kennst Du schon?

http://et-tutorials.de/1519/programmierung-eines-kaffeeautomaten/

von double (Gast)


Lesenswert?

> Ein float ist auch in der Lage, die Zahl 2 zu
> speichern.

So etwa aber nicht ganz genau. :-)

von Simon N. (ardi)


Lesenswert?

Ok, also hier jetzt mal mein neuer ganzer Code:
1
#include <stdio.h>
2
3
int main(){
4
    while(1){
5
float summe=0;
6
int anzahl;
7
int wahl;
8
int kosten_wasser;
9
int kosten_bier;
10
int kosten_fanta;
11
int rueckgeld;
12
float fehlend;
13
14
printf("\nGetreankeautomat---Version 0.1");
15
printf("Sorten:\nWasser:1Euro\nBier:2Euro\nFante:1.50Euro\n");
16
scanf("%d", &wahl);
17
18
if(wahl==1){
19
    printf("Bitte geben sie 1 Euro ein:");
20
    scanf("%f", &summe);
21
    if(summe>1){
22
        rueckgeld=summe-1;
23
        printf("Ihr Rueckgeld: %d Euro", rueckgeld);
24
    }else
25
    if(summe<1){             //Hier ist weniger als 1 also Komma
26
        while(summe==1){
27
            printf("%f",summe);
28
            scanf("%f", &summe);
29
        }
30
31
    }
32
    }else
33
    if(summe==1){
34
        continue;
35
    }
36
    printf("\nBitte entnehmen sie ihr Getreank.\n");
37
38
}
39
}
Nun habe ich, falls weniger als 1 Euro, also 0.99 oder so,
Ich möchte halt so rechnen mit Kommas wegen den Euros.
Ich habe nun das Rückwärts zählen Prinzip genommen also Ich gebe 0.5 
Euro ein und dann steht dran wie viel schon eingegeben wurde.
Gruß

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

spiel einfach mal selber "Computer" und gehe dein Programm händisch 
durch (manuelles debuggen)

Vergiss erst mal deine Verständnisblockade mit Ganzzahlen und 
Bruchzahlen.

lege dir rechts neben dein Programmcode ein Blatt Papier dran, und 
schreibe dir mit Bleistift auf, welchen Wert welche Variable hat. Wenn 
du an eine neue Wertzuweisung kommst, dann trage den neuen oder 
geänderten  Wert in deine Variable ein.

Funktioniert alles wie gewünscht? Prima, dann ist dein Programm ja 
soweit "fertig". Dann bring es in den Computer hinein, lass es laufen, 
und schaue ob es genau das selbe macht was du grade händisch 
durchgesteppt hast.

: Bearbeitet durch User
von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Simon Name schrieb:
> int rueckgeld;

und

> rueckgeld=summe-1;
> printf("Ihr Rueckgeld: %d Euro", rueckgeld);


Warum liefert das kein sinnvolles Ergebnis? Überleg' mal.

von Simon N. (ardi)


Lesenswert?

Ok rufus, ich muss einfach rueckgeld zu float machen dann wäre das auch 
geklärt.
Aber nun ist es so dass wenn ich eine Kommazahl eingebe gleich kommt:
"Bitte entnehmen sie ihr Getreank."

von Helferlein (Gast)


Lesenswert?

Klar kommt gleich die Meldung "Bitte entnehmen sie ihr Getreank.".
1
while(summe==1)
kann unmöglich erfüllt sein. Wenn jemand weniger als 1 eingibt musst du 
das ganze sowieso komplett anders aufbauen. Du musst doch die Beträge 
immer addieren und prüfen wann er endlich 1 erreicht hat. Zusätzlich, 
was passiert, wenn man 90c eingeworfen hat und dann 20c einwirft? Dann 
muss ja auch noch Rückgeld kommen.

Also, wie vorhin schon Wegstaben Verbuchsler gesagt hat: Zeichne dir die 
Logik hinter deinem Programm zuerst auf und fange dann erst zum 
programmieren an!

von yoohaa (Gast)


Lesenswert?

Helferlein schrieb:
> Klar kommt gleich die Meldung "Bitte entnehmen sie ihr
> Getreank.".while(summe==1) kann unmöglich erfüllt sein. Wenn jemand
> weniger als 1 eingibt musst du
> das ganze sowieso komplett anders aufbauen. Du musst doch die Beträge
> immer addieren und prüfen wann er endlich 1 erreicht hat. Zusätzlich,
> was passiert, wenn man 90c eingeworfen hat und dann 20c einwirft? Dann
> muss ja auch noch Rückgeld kommen.
>
> Also, wie vorhin schon Wegstaben Verbuchsler gesagt hat: Zeichne dir die
> Logik hinter deinem Programm zuerst auf und fange dann erst zum
> programmieren an!

Blödsinn, wahl ==1 ist der Bock.

von Simon N. (ardi)


Lesenswert?

Also jetzt geht alles außer wenn ich mehr als 1 Euro eingebe kommt als 
Rückgeld 0.
1
#include <stdio.h>
2
3
int main(){
4
    while(1){
5
float summe=0;
6
int anzahl;
7
int wahl;
8
int kosten_wasser;
9
int kosten_bier;
10
int kosten_fanta;
11
float rueckgeld;
12
float fehlend;
13
float counter;
14
float eingabe;
15
16
printf("\nGetreankeautomat---Version 0.1");
17
printf("Sorten:\nWasser:1Euro\nBier:2Euro\nFante:1.50Euro\n");
18
scanf("%d", &wahl);
19
20
if(wahl==1){
21
    printf("Bitte geben sie 1 Euro ein:");
22
    scanf("%f", &summe);
23
    if(summe>1){
24
        rueckgeld=summe-1;
25
        printf("Ihr Rueckgeld: %d Euro", rueckgeld);
26
    }else
27
    if(summe<1){
28
            do{
29
            printf("%f eingegeben:",summe);
30
            scanf("\n%f", &eingabe);
31
            counter=summe+eingabe;
32
            }
33
        while(counter<1);
34
35
            }
36
    }else
37
    if(summe==1){
38
        continue;
39
    }
40
    printf("\nBitte entnehmen sie ihr Getreank.\n");
41
42
}
43
}
Und dass mit dem "mehr als nötig" bei der Eingabe wenn erst zu wenig und 
dann zu viel muss ich noch überlegen wie ich dass mache.
Gruß un Danke

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Simon Name schrieb:
> printf("Ihr Rueckgeld: %d Euro", rueckgeld);

Welchen Datentyp hat "rueckgeld" und für welchen Datentyp ist der 
Formatspezifizierer %d da?

von Simon N. (ardi)


Lesenswert?

Ach ja und neben bei:
Das war nicht der ganze Code.
Dass ist nur der Code mit dem Part Wasser.
Bei Bier und "Fante" muss ich das einfach noch um ändern.

von Simon N. (ardi)


Lesenswert?

Ok Danke nun gehts.
Ich musste aus dem %d einfach nur ein %f machen :)
Gruß und Danke

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Simon Name schrieb:
> Dass ist nur der Code mit dem Part Wasser.
> Bei Bier und "Fante" muss ich das einfach noch um ändern.

Du könntest natürlich erkennen, daß der Code der anderen Abschnitte dem 
für "Wasser" ziemlich ähnlich ist - genauer, gibt es exakt einen 
Unterschied: Den Preis.

Muss man deswegen den Code dreimal hinschreiben? Oder würde es sich 
lohnen, den jeweils gewählten Preis in einer Variablen unterzubringen 
und die verschiedenen Vergleiche nicht mit konstanten Werten, sondern 
eben jener Variablen durchzuführen?

Denk mal drüber nach.

von dadada (Gast)


Lesenswert?

Simon Name schrieb:
> Ok Danke nun gehts.
> Ich musste aus dem %d einfach nur ein %f machen :)
> Gruß und Danke

Naja, so ganz geht das doch noch nicht. Was ist wenn zuerst 50 Cent und 
dann 1 Euro eingeworfen werden? Kein Rückgeld?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.