PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Debbuger gesucht!



Longlife
22-11-2001, 09:46
Also ich hab folgendes Problem! Ich hab mithilfe eines Tutorials ( bin Anfänger ) nen NimmSpiel geproggt! z.B. 10 Münzen auf nem Tisch man darf 1-3 Münzen ziehen, wer die letzten zieht hat gewonnen! Erst hat es funktioniert dann habe ich was geringfügig am Code geändert! Kann mal jemand gucken was falsch ist?

------------------------

#include <iostream.h>

int Rechnerzieht(int);
int Menschzieht(int);

void main()
{
//Deklaration
int anzahlm;


//Hier wird Münzenanzahl eingegeben
cout<<"Geben sie die Anzahl der Münzen an: ";
cin>>anzahlm;

//Schleife die checkt wer gewonnen hat und die muenzen berechnet
while(true)
{
anzahlm=anzahlm-Rechnerzieht(anzahlm);
if(anzahlm==0)
{
cout<<"Der Computer hat gewonnen"<<endl;
return;
};

anzahlm=anzahlm-Menschzieht(anzahlm);
if(anzahlm==0)
{
cout<<"Sie haben gewonnen"<<endl;
return;
};
};
};


//Berechnung wenn Menschzieht
int Menschzieht(int anzahlm)
{
int ergebnis=0;
while(ergebnis<1 || ergebnis>3)
{
cout<<"Spieler Anzahl der Münzen" <<anzahlm<< "): ";
cin>>ergebnis;
if(ergebnis<1 || ergebnis>3)
cout<<"Es dürfen nur Zahlen zwischen 1 und 3 eingegeben werden"<<endl;
if(ergebnis>anzahlm)
{
cout<<"Es liegen weniger Münzen auf dem Tisch als angegeben"<<endl;
};
return ergebnis;
}


//Berechnung wenn Computer mit Modelo-Operato //Computer sagt wieviel Münzen er nimmt
int Rechnerzieht(int anzahlm)
{
int wunschzug=anzahlm%4;
if(wunschzug=0)
wunschzug=1;
cout<<"Der Computer nimmt "<<wunschzug<<" Münze bzw Münzen!"<<endl;
return wunschzug;
};


---------------------------------------------

Die Debuggermeldungen sind folgende:
Zeile 56: 'Rechnerzieht' : Lokale Funktionsdefinitionen sind unzulaessig
Zeile 65: Error C1004: Unerwartetes Dateiende gefunden

Wäre sehr dankbar für eure Hilfe!

Jimmy
22-11-2001, 10:17
Bei der while-Schleife bei deiner menschZieht-Funktion fehlt die Abschließende geschweifte Klammer

Jimmy

thommy
22-11-2001, 12:27
if (wunschzug=0) !!!!!

Du meinst sicherlich:

if (wunschzug == 0)

Des Weiteren ist der Rückgabewert von main immer int (void ist veraltet).

Thomas

Longlife
23-11-2001, 08:16
Jo bei "if (wunschzug=0)" hatte ich mich vertippt! Habe ich aber dann selber gefunden! Hmm warum ist void veraltet?

Danke

thommy
23-11-2001, 10:25
Nach aktuellen Standard muss main immer einen Wert int zurückgeben. 'void' ist nicht mehr zulässig (also besser gleich 'int main ... return 0' angewöhnen;)).

Thomas

Longlife
23-11-2001, 13:04
Nagut ich merks mir! Danke!