2016-07-18 2 views
-3

Ich mache einen Anfänger rate die Zahl in Microsoft Visual Studio 2015. Wie kann ich es etwas anderes sagen, wenn die vermutete Zahl ist nicht das gleiche wie die zufällig generierte Zahl? Wenn ich das Programm starte und rate, sagt es beide "wenn < < cout." Könnte ich Hilfe haben, habe ich nie wirklich die ganzen "wenn sonst" Aussagen bekommen.Wie programmiere ich eine Sache C++

#include <iostream> 
#include <ctime> 
#include <random> 
#include <string> 

using namespace std; 

int main() { 

int guessNumber; 
int guess; 

mt19937 numGen(time(NULL)); 

uniform_int_distribution<int> findNum(1, 10); 

cout << "Welcome to Guess the Number\n" << endl << "Your Guess : "; 
cin >> guess; 

if (guess = findNum(numGen)) { 
    cout << "\nNice Job" << endl; 
} 

else if (guess != findNum(numGen)) { 
    cout << "\nGood Try" << endl; 
} 

system("PAUSE"); 
return 0; 
} 
+0

Meinst du zu schreiben? If (rate == findNum (numGen)) {'? –

+0

Ich denke du meinst "rate == findNum (numGen)". Außerdem sollten Sie 'findNum (numGen)' nur einmal tun. – DimChtz

+0

sollten Sie die Zufallszahl nur einmal rollen. Wie du es gerade geschrieben hast, kann es passieren, dass der Spieler richtig rät und nicht gleichzeitig richtig rät, weil du die Rate zweimal mit zwei verschiedenen Zufallszahlen vergleichen wolltest – user463035818

Antwort

2

Sie benötigen == zum Vergleich. Ändern Sie diese

if (guess = findNum(numGen)) 

dieser

if (guess == findNum(numGen)) 

jeder vernünftigen Compiler sollten Warnungen für diese haben. Überprüfen Sie Ihre Einstellungen. Da Ihr Bereich zwischen 1 und 10 liegt, wird er immer nicht Null sein und als wahr gelten.

Die ursprüngliche Zeile wird guess zuweisen und dann den Wert davon überprüfen. Wenn es nicht Null ist, wird der erste Zweig ausgewählt.

+3

Wir haben einen nahen Grund für diese Art von Fragen, wie sie in der Regel nicht als nützlich für die Forschung in der Zukunft angesehen werden. Benutze entweder deine enge Stimme oder finde ein Duplikat, aber antworte nicht. –