Erraten der Zufallszahl funktioniert nicht
-
silent_max schrieb:
Shade Of Mine schrieb:
Finde den Fehler:
else (einlesen==zahl);
Wenn ich das Semmikolon weglassen, dann bekomme ich folgende Fehlermeldung:
error C2143: Syntaxfehler: Es fehlt ';' vor '{'und warum?
vergleiche diese zeilen
if( einlesen<zahl) {} else if (einlesen>zahl) {} else (einlesen==zahl) {} // ohne semikolon hitner den runden klammern fehler!
-
silent_max schrieb:
Belli schrieb:
Ja, schlag mal ordentlich vor die Wand.
Und dann bitte beantworte:
Warum hast Du überhaupt einezufallszahl.hgeschrieben?
Mein Lehrer sagt immer, dass Funktionsaufrufe/Funktionsprototypen in eine Headerdatei gehören
Du hast aber weder eine Funktion noch einen Aufruf einer Funktion namens zufallszahl, die Du da in der Header-Datei deklarierst.
-
Nie wieder arbeite ich bei mehreren
if-Anweisungenmitelse...Hier einmal der richtige Code...
#include "zufallszahl.h" #include <time.h> //Header-Datei für time bei srand #include <stdlib.h> //Header-Datei für rand und srand #include <iostream> //Header-Datei für "cin" und "cout" using namespace std; int main(void) { int zahl, einlesen; //Variablen "Zahl" und "Einlesen" als Integer(da Zahlen) deklarieren int versuche; //Versuche ist auch Integer da die Versuche gezählt werden srand((unsigned)time(NULL)); zahl=rand(); //Zahl über Zufallsgenerator erzeugt zahl=zahl%1000+1; //"rand() erzeugt eine Zufallszahl zwischen 2^0 und 2^15, deswegen //%1000+1; %=Modulo -> keine Kommazahlen; 0 bis 1000 cout<<"Zufallszahl zwischen 1 und 1000 eingeben"; cin>>einlesen; for(versuche=0; zahl!=einlesen; versuche++) //Versuche muss mit =0 initialisiert werden { if( einlesen<zahl) { cout<<"Eingebene Zahl ist zu klein!\n"; cout<<"Erneute eingabe\n"; cin>> einlesen; } if (einlesen>zahl) { cout<<"Eingebene Zahl ist zu gross!\n"; cout<<"Erneute eingabe!\n"; cin>> einlesen; } if(einlesen==zahl) { if(versuche<10) { cout<<"Weniger als 10 Versuche, Glueck gehabt\n"; cout<<"Anzahl der Versuche:\n\n"<<versuche<<endl; } if(versuche==10) { cout<<"Prima, 10 Versuche, sie sind ueberlegt an das Problem herangegangen\n"; } cout<<"Anzahl der Versuche:\n\n"<<versuche<<endl; if(versuche>10) { cout<<"Mehr als 10 Versuche, sie haben mehr oder weniger im Nebel gestochert\n"; cout<<"Anzahl der Versuche:\n"<<versuche<<endl; } } } return 0; }
-
Tja ... und nun lass mal
#include "zufallszahl.h"weg und nimm bitte statt time.h ctime und statt stdlib.h cstdlib.
Und dann lösch Deine zufallzahl.h - Headerdatei wieder.
-
Schreib mal in Zeile 16:
zahl = 2;Und dann gibst du auch gleich 2 ein.
-
DirkB schrieb:
Schreib mal in Zeile 16:
zahl = 2;Und dann gibst du auch gleich 2 ein.
Also bei mir bleibt dann die Ausgabe leer... es erscheint gleich die Meldung "Drücken Sie eine beliebege Taste..."
-
silent_max schrieb:
Also bei mir bleibt dann die Ausgabe leer... es erscheint gleich die Meldung "Drücken Sie eine beliebege Taste..."
Ist das wirklich das gewünschte Verhalten?
-
silent_max schrieb:
Nie wieder arbeite ich bei mehreren
if-Anweisungenmitelse...Und jetzt bau das else wieder ein und zwar korrekt.
-
Shade Of Mine schrieb:
silent_max schrieb:
Nie wieder arbeite ich bei mehreren
if-Anweisungenmitelse...Und jetzt bau das else wieder ein und zwar korrekt.
Quatsch. Das braucht er nicht.
-
DirkB schrieb:
Shade Of Mine schrieb:
silent_max schrieb:
Nie wieder arbeite ich bei mehreren
if-Anweisungenmitelse...Und jetzt bau das else wieder ein und zwar korrekt.
Quatsch. Das braucht er nicht.
sollte er aber. Und sei es nur zu Übungszwecken - irgendwann wird er es brauchen.
-
DirkB schrieb:
Shade Of Mine schrieb:
silent_max schrieb:
Nie wieder arbeite ich bei mehreren
if-Anweisungenmitelse...Und jetzt bau das else wieder ein und zwar korrekt.
Quatsch. Das braucht er nicht.
Shade Of Mine ... bitte verstehe mich nicht falsch, aber wozu brauche ich das else, wenn es mit nur if - Anweisungen klappt??
-
DirkB schrieb:
Shade Of Mine schrieb:
silent_max schrieb:
Nie wieder arbeite ich bei mehreren
if-Anweisungenmitelse...Und jetzt bau das else wieder ein und zwar korrekt.
Quatsch. Das braucht er nicht.
Doch, das braucht er. Wann soll er es sonst lernen?
-
Erstmal soll das Programm richtig funktionieren.
Dafür braucht er das else nicht.Wenn das erledigt ist kann er (oder du) das else einbauen.
-
Ich kann mich täuschen...
Aber machen
if...else Anweisungennicht mehr Sinn, wenn man zwei Auswahlmöglichkeiten hat...if ... elsedrückt es doch ausentweder...oderbzw.wenn ... sonst...
-
silent_max schrieb:
Shade Of Mine ... bitte verstehe mich nicht falsch, aber wozu brauche ich das else, wenn es mit nur if - Anweisungen klappt??
Weil das der Programmlogik entspricht. Diese Logik ist nunmal "entweder-oder". Wenn sich die Möglichkeiten derart gegeneinander ausschließen, verwendet man "else". Optimierungsfetischisten würden jetzt die Performance erwähnen, die in diesem Fall aber vernachlässigt werden kann. Alle anderen spielen die Karte "Leserlichkeit/Verständnis". Wenn ich ein Stück Code verstehen will, dann überlege ich, in welchen Situationen der jeweilige Block durchlaufen wird. Da ist so ein "else" sehr hilfreich, insbesondere wenn die Bedingungen nicht ganz so offensichtlich sind, wie hier.
-
silent_max schrieb:
Aber machen
if...else Anweisungennicht mehr Sinn, wenn man zwei Auswahlmöglichkeiten hat...if ... elsedrückt es doch ausentweder...oderbzw.wenn ... sonst...Wenn es vor 11 Uhr ist, bin ich müde. Sonst - wenn es noch vor 13 Uhr ist - bin ich hungrig. Ansonsten freue ich mich auf den Feierabend.
-
Ja ok... werde ich beherzigen.
Aber nachdem das jetzt geklärt ist, kann ich mich jetzt wieder dem Thema Strings zuwenden...
-
silent_max schrieb:
Aber nachdem das jetzt geklärt ist, kann ich mich jetzt wieder dem Thema Strings zuwenden...
Funktioniert dein Programm denn jetzt so, wie es soll?
Was ist mit dieser Anforderung:
Die Überprüfung der Zufallszahl soll in einem Unterprogramm erfolgen. Das Unterprogramm liefert einen Enumwert zurück, der angibt ob die Zahl RICHTIG, ZU_GROSS oder ZU_KLEIN war.
-
Und was ist immer noch mit der unnützen Headerdatei zufallszahl.h und der darin deklarierten aber nirgendwo definierten/genutzten Funktion zufallszahl?
-
daddy_felix schrieb:
silent_max schrieb:
Aber nachdem das jetzt geklärt ist, kann ich mich jetzt wieder dem Thema Strings zuwenden...
Funktioniert dein Programm denn jetzt so, wie es soll?
Ja, habe ich jetzt schon zig Male ausprobiert...
Was ist mit dieser Anforderung:
Die Überprüfung der Zufallszahl soll in einem Unterprogramm erfolgen. Das Unterprogramm liefert einen Enumwert zurück, der angibt ob die Zahl RICHTIG, ZU_GROSS oder ZU_KLEIN war.
Das soll der Lehrer entscheiden...