Ok, wenn´s jetzt läuft darf man vermutlich auch Kritik an deinem Programmierstil äußern, ohne auf die Ausgangsfrage einzugehen:
- benutze aussagekräftige Variablennamen. schleife deutet zwar an, dass sie für Schleifendurchläufe benutzt wird, aber nicht, welchen Zweck sie erfüllt. ZahlGeraten wäre da ein besserer Name.
- der Trick mit der 7, um die for-Schleife abzubrechen, ist nicht schön. Das kann man besser mit in die while Schleife nehmen, zusammen mit dem Variablennamen könnte das so aussehen:
int main()
{
bool ZahlGeraten = false;
unsigned int Versuche = 0;
while( !ZahlGeraten && Versuche < 7 )
{
...
++Versuche;
}
if( ZahlGeraten )
{
// Erfolg, in Versuche steht die Anzahl der Versuche, die der Benutzer gebraucht hat
}
else
{
// Zahl wurde nicht erraten
}
}
- vermeide temporäre Variablen, die nur zu Rückgabezwecken benutzt werden. Für den Compiler macht´s wahrscheinlich keinen Unterschied, aber jede überflüssige Codezeile ist eine zu viel.
int Zahlvergleich( int Zahl, int Eingabe )
{
if( Zahl == Eingabe )
{
return 1;
}
else if( Zahl < Eingabe )
{
return 2;
}
else if( Zahl > Eingabe )
{
return 3;
}
}
- benutze niemals C-Style casts wie in Zeile 15, sondern immer die entsprechenden C++ Pendants.
- 1,2 und 3 als Rückgabewerte sind unglücklich gewählt, aber das hat dir Dirk B. ja schon gesagt.
- Warum benutzt du Präfixe für zZahl , aber keine für schleife ? Am besten lässt du alle weg und benutzt gar keine. Für Member kann man Ausnahmen machen, indem man ihnen z.B. ein m voranstellt oder ein _ anhängt.
- Benutze Variablen so lokal wie möglich. zZahl wird erst in der while Schleife gebraucht und braucht also erst dort definiert zu werden.
Edit:
Bugfix