Nerviges Problem, hast du bessere augen als ich ? O.O
-
Hiho, ich habe ein kleines nap programm geschrieben "Zahlen raten" habe jedoch nen echt nerviges problem das mich total auf die Palme bringt

Das Problem das ich habe ist, das eine meldung erscheint wenn sie garnicht erscheinen soll, und eig auch kein grund hat in erscheinung zu treten.
Hier das \1:#include <iostream> #include <cstdlib> #include "random.hpp" using namespace std; int main() { int raten; int gewonnen = 0; char Auswahl; cout << "Menue" << endl << "-------------------" << endl << "<S> Starten" << endl << "<B> Beenden" << endl << endl << "Auswahl: "; cin >> Auswahl; switch(Auswahl) { case 'S': case 's': { cout << "Spiel wird gestartet ..." << endl; system("cls"); }break; case 'B': case 'b': { cout << "Spiel wird beendet." << endl; exit(0); }break; default: { cout << "Falsche eingabe du Flasche ! (Drucke eine taste um das Programm zu beenden)" << endl; getchar(); getchar(); exit(0); } } int nummer = random(); do { raten = 0; cout << "------------------------------------------------------" << endl << "Zahlenrate spiel by Steve John K. / Du bist in lvl: " << gewonnen << endl << "------------------------------------------------------" << endl << endl ; cout << "Nummer die du ratest: " ; cin >> raten; if(raten == 0) { cout << "Drucke Enter um fort zu fahren." << endl; }else{ if(nummer >= raten) { system("cls"); cout << "Information: Deine geratene zahl ist kleiner als die Korrekte zahl !" << endl; getchar(); } if(raten == nummer){ system("cls"); nummer = random(); cout << "Information: Du hast es erraten !! Glueckwunsch ! :D" << endl << "[Drucke ENTER um weiter zu spielen.]" << endl; gewonnen++; getchar(); } if(nummer <= raten) { system("cls"); cout << "Information: Die von dir geratene zahl ist groesser als die Korrekte Zahl !" << endl; getchar(); <- Die Ausage die nicht erscheinen soll ... jedenfalls nicht um unpassenden moment. } } }while(gewonnen < 10); return 0; }random.cpp:
#include <iostream> #include "random.hpp" using namespace std; int random() { int x = rand() % 999 + 1; return x; }random.hpp:
int random();Wäre cool wenn mir da jemand weiter helfen kann / mir erklären kann wiso zum Peter das nicht geht ...
LG Eurer sehr geschätzter random.

-
vegas1665 schrieb:
Das Problem das ich habe ist, das eine meldung erscheint wenn sie garnicht erscheinen soll, und eig auch kein grund hat in erscheinung zu treten.
Präzise Fehlerbeschreibung! Wann erscheint die Meldung, wenn sie gar nicht sollte? Gib einen Weg an, das Problem zu reproduzieren!
Lies dir auch den dritten Link in meiner Signatur durch. Dein Programm ist nämlich nicht compilierbar ohne sehr viele Änderungen durch den Leser. Nichts schreckt Helfer schneller ab.
Hier hast du Glück, dass dein Fehler offensichtlich ist (oder ist er es? Ich sehe einen Fehler, aber ich weiß ja nicht, ob dieser überhaupt gefragt war. Siehe oben):
<=und>=sind was anderes als<und>. Insbesondere kann eine Zahl gleichzeitig<=,>=und==zu einer anderen Zahl sein, aber nur genau eines von<,>,=.(An die Forenklugscheißer: Ja, das gilt nur für Ganzzahlen. Ich weiß das. Ihr auch. Den Threadersteller würde eine Unterscheidung bloß verwirren.)
-
kannst du das nicht einfach mal compilieren ?
-
vegas1665 schrieb:
kannst du das nicht einfach mal compilieren ?
Nein! Weder habe ich dein random.hpp, noch irgendwelche komischen DOS-Spracherweiterungen. Allesamt wären bei einem gut gemachten Minimalbeispiel gar nicht nötig. Außerdem fehlt eine Beschreibung, was überhaupt der Fehler ist und wann er auftritt.
Aus dem genannten Thread, den du nicht gelesen hast:
pumuckl schrieb:
Zu viel Aufwand? Du möchtest, dass sich zig Leute hier mehr als nur einen Augenblick mit deinem Problem beschäftigen. Also solltest du auch bereit sein, dafür entsprechend viel Zeit zu investieren. Je mehr Mühe du dir gibst, desto leichter machst du es anderen, dir zu helfen, und desto wahrscheinlicher ist es, dass jemand sich auch wirklich mit deinem Problem beschäftigt.
Außerdem hast du (d)eine Antwort doch bereits.
-
Ich will wissen wiso die meldung "Information: Die von dir geratene zahl ist groesser als die Korrekte Zahl !" kommt nachdem ich die zweite nummer erraten habe. Das ist alles ... stehen alle scrips da die ich verwendet habe ka was ich noch sagen soll könnt vll noch screens hochladen

-
Liest du die Antworten überhaupt?
-
Außerdem hast du (d)eine Antwort doch bereits.
Nein hab ich nicht, diese krokodil mäuler passen ob <= >= sogut wie <, > ...
-
Ich schreibe mal nochmal etwas länger was Sepp schon gesagt hat.
Angenommen die zu ratende Zahl sei 5. Der Spieler rät 5. Das Programm landet in Zeile 74 und testet, ob "5 >= 5" ist. Richtig, "5 >= 5" also wird der Code für "Deine geratene zahl ist kleiner als die Korrekte zahl !" ausgeführt. Dann prüft es in Zeile 82 ob "5 == 5" gilt. Wieder richtig, also wird der Code für "Du hast es erraten !!" ausgeführt und löscht vorher das "Deine geratene zahl ist kleiner als die Korrekte zahl !". Das Programm scheint also zu funktionieren.
Nachdem du eine Taste drückst prüft das Programm in Zeile 92 ob "5 <= 5" ist anstatt abzubrechen. Wieder richtig und plötzlich erscheint nach dem richtigen Erraten der Zahl "Die von dir geratene zahl ist groesser als die Korrekte Zahl !" was zu einem unpassendem Zeitpunkt passiert.
Du willst also "<" statt "<=" und ">" statt ">=" und vielleicht noch "else if" statt nur "if".
-
Das macht sinn, nur die lösung blick ich ned xD
-
VIEEEELEN DANK !!! HAT GEKLAPPT !!! BIN ICH DOOF !!! TROZDEM GEIL !!! DANKE !!!!

-
SeppJ schrieb:
Insbesondere kann eine Zahl gleichzeitig <=, >= und == zu einer anderen Zahl sein, aber nur genau eines von <, >, =.
(An die Forenklugscheißer: Ja, das gilt nur für Ganzzahlen. Ich weiß das. Ihr auch. Den Threadersteller würde eine Unterscheidung bloß verwirren.)
Negative Zero oder um was geht's da?
NaNgibt ja bei jedem Vergleichfalsewenn ich mich richtig erinnere, und bei denINFswüsste ich auch net wie ich aus mehr als einem Vergleichtruerausbekommen soll...
-
vegas1665 schrieb:
VIEEEELEN DANK !!! HAT GEKLAPPT !!! BIN ICH DOOF !!! TROZDEM GEIL !!! DANKE !!!!

YMMD

-
hustbaer schrieb:
Negative Zero oder um was geht's da?
NaNgibt ja bei jedem Vergleichfalsewenn ich mich richtig erinnere, und bei denINFswüsste ich auch net wie ich aus mehr als einem Vergleichtruerausbekommen soll...NaN meinte ich, da es weder <, > noch == zu etwas anderem ist, nicht einmal zu sich selber.