2
#include <iostream>
#include <windows.h>
#include <cstdlib>
#include <stdlib.h>

using namespace std;

int main()
{
    int x,y,z;
cout<<"welcome to guessing game\nplayer one pick your number: ";
cin>>x;
if (x < 0)(x > 100);
{
    cout<<"out of number range";
}
Sleep(2000);
system("cls");
cout<<"ok player 2 pick the guess";
cin>>y;
if (x == y){
      cout<<"congrats you got it right";
           }
            else{
            if (x < y){
            cout<<"Go lower";}
            else {
            if (x > y){
            cout<<"higher";}}
            }
system("pause>nul");
return 0;
}

无论我输入什么数字,我都看不到让初始 if 语句起作用,它会自动显示超出数字范围。我也可以像 if (x < 0)(x > 100); 那样将条件如此接近。还有我怎么让它回到程序的开头?

4

6 回答 6

6

有一个错误:

if (x < 0)(x > 100);
{
    cout<<"out of number range";
}

应该:

if (x < 0 || x > 100)
{
    cout<<"out of number range";
}

您还需要处理缩进;底部的那些if/else陈述看起来很狡猾(由于缩进,我无法真正说出)。

于 2013-07-03T14:59:22.760 回答
4

除了书写if (x < 0 || x > 100)(并删除分号)之外,您还应该警惕比较浮点上的相等性。if (x == y){如果查看您的代码,我会标记您的行。

请参阅浮点比较

于 2013-07-03T15:02:57.037 回答
3

没有人真正回答你的第二个问题:如何循环它,你去:

int x;
cout << "Welcome to the guessing game\n";
do {
    cout << "Please enter a number from 0 to 100: ";
    cin >> x;
} while (x < 0 || x > 100);
于 2013-07-03T15:04:02.983 回答
2

你写

if (x < 0)(x > 100);
{
     cout<<"out of number range";
}

首先删除分号。第二,你的意思是

if ((x < 0) || (x > 100))
{
    cout<<"out of number range";
}
于 2013-07-03T15:01:09.683 回答
1

尝试这个:

/*
if (x < 0)(x > 100);
{
    cout<<"out of number range";
}
*/

if (x < 0 || x > 100)
{
    cout<<"out of number range";
}
于 2013-07-03T15:00:26.850 回答
0

有一些值得注意的语法错误:

    if (x < 0)(x > 100);
{
    cout<<"out of number range";
}

首先,您不能像我所知道的那样在 C++ 中将两个条件并排放置。您必须将它们与||OR 或&&AND 分开(在大多数情况下 - 还有其他一些)。

此外,您;的 if 语句末尾有一个。我相信在 C++ 中这样做也会导致一些问题。

您的最终代码应如下所示:

if ((x < 0) || (x > 100))
{
    cout << "out of number range" << endl;
}

<< endl; 部分是可选的。这会在您的输出中添加一个新行,以便在您下次编写内容时更具可读性。

另外,要重复循环整个游戏,我会使用do-while循环。你可以在这里了解它们

于 2013-07-03T15:03:41.677 回答