Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 带有不合逻辑错误的数字猜测游戏 #包括 #包括 #包括 使用名称空间std; srand(时间(空)); int main(){ int-botguess; int playerinput; int mi=1,ma=100; 整数匝数=0; 不能播放; 猜不透){//_C++ - Fatal编程技术网

C++ 带有不合逻辑错误的数字猜测游戏 #包括 #包括 #包括 使用名称空间std; srand(时间(空)); int main(){ int-botguess; int playerinput; int mi=1,ma=100; 整数匝数=0; 不能播放; 猜不透){//

C++ 带有不合逻辑错误的数字猜测游戏 #包括 #包括 #包括 使用名称空间std; srand(时间(空)); int main(){ int-botguess; int playerinput; int mi=1,ma=100; 整数匝数=0; 不能播放; 猜不透){//,c++,C++,你不想要不同的数字,你想要的数字要少得多。看一个例子:(5..10)包含6不同的数字:[5,6,7,8,9,10];但是如果你想要rand()%10+5,你会得到从5(5+0)到14(5+9)。您需要的是rand()%6+5,其中6是10-5+1 你不想要不同的数字,你想要的数字要少得多。看一个例子:(5..10)包含6不同的数字:[5,6,7,8,9,10];但是如果你想要rand()%10+5,你会得到从5(5+0)到14(5+9)。您需要的是rand()%6+5,其中6是10-5+1 你不

你不想要不同的数字,你想要的数字要少得多。看一个例子:
(5..10)
包含
6
不同的数字:
[5,6,7,8,9,10]
;但是如果你想要
rand()%10+5
,你会得到从
5
5+0
)到
14
5+9
)。您需要的是
rand()%6+5
,其中
6
10-5+1

你不想要不同的数字,你想要的数字要少得多。看一个例子:
(5..10)
包含
6
不同的数字:
[5,6,7,8,9,10]
;但是如果你想要
rand()%10+5
,你会得到从
5
5+0
)到
14
5+9
)。您需要的是
rand()%6+5
,其中
6
10-5+1

你不想要不同的数字,你想要的数字要少得多。看一个例子:
(5..10)
包含
6
不同的数字:
[5,6,7,8,9,10]
;但是如果你想要
rand()%10+5
,你会得到从
5
5+0
)到
14
5+9
)。您需要的是
rand()%6+5
,其中
6
10-5+1


你不想要不同的数字,你想要的数字要少得多。看一个例子:
(5..10)
包含
6
不同的数字:
[5,6,7,8,9,10]
;但是如果你想要
rand()%10+5
,你会得到从
5
5+0
)到
14
5+9
)。您需要的是
rand()%6+5
,其中
6
10-5+1

您遇到的问题是由于mi设置为botguess(很容易大于零),然后在下一个循环中,如果ma仍然为100(或接近它的任何位置),则会导致此问题,有时会在botguess中设置大于100的数字

<>编辑添加:C++中的%运算符是mod除法(即给出整数除法的剩余部分),例如,98% 100+15将是98+15,即113<p/p>113。 此链接可以帮助您:


您遇到的问题是由于mi被设置为botguess,这很容易大于零,然后在下一个周期中,如果ma仍然是100(或接近它的任何地方),您有时会在botguess中设置大于100的数字

<>编辑添加:C++中的%运算符是mod除法(即给出整数除法的剩余部分),例如,98% 100+15将是98+15,即113<p/p>113。 此链接可以帮助您:


您遇到的问题是由于mi被设置为botguess,这很容易大于零,然后在下一个周期中,如果ma仍然是100(或接近它的任何地方),您有时会在botguess中设置大于100的数字

<>编辑添加:C++中的%运算符是mod除法(即给出整数除法的剩余部分),例如,98% 100+15将是98+15,即113<p/p>113。 此链接可以帮助您:


您遇到的问题是由于mi被设置为botguess,这很容易大于零,然后在下一个周期中,如果ma仍然是100(或接近它的任何地方),您有时会在botguess中设置大于100的数字

<>编辑添加:C++中的%运算符是mod除法(即给出整数除法的剩余部分),例如,98% 100+15将是98+15,即113<p/p>113。 此链接可以帮助您:


别忘了在程序开始时为随机数生成器添加种子,这样你就不会每次都得到相同的结果:
srand(time(0));
就可以了。哦,很抱歉,我已经在我的新文章中添加了这一点。嗯,我说的“程序的开始”是指
main()中的某个地方
在循环之前。你不能把它放在任何函数体之外。这不是问题,这只是一些可能对你有帮助的东西。Amadan已经提供了一个答案,很好地解释了你的错误以及如何按照你的意图进行计算。别忘了在你的pro开始时为随机数生成器设定种子gram,这样你就不会每次都得到相同的结果:
srand(time(0));
就可以了。哦,对不起,我已经在我的新文章中添加了这一点。嗯,我说的“程序的开始”是指
main()中的某个地方
在循环之前。你不能把它放在任何函数体之外。这不是问题,这只是一些可能对你有帮助的东西。Amadan已经提供了一个答案,很好地解释了你的错误以及如何按照你的意图进行计算。别忘了在你的pro开始时为随机数生成器设定种子gram,这样你就不会每次都得到相同的结果:
srand(time(0));
就可以了。哦,对不起,我已经在我的新文章中添加了这一点。嗯,我说的“程序的开始”是指
main()中的某个地方
在循环之前。你不能把它放在任何函数体之外。这不是问题,这只是一些可能对你有帮助的东西。Amadan已经提供了一个答案,很好地解释了你的错误以及如何按照你的意图进行计算。别忘了在你的pro开始时为随机数生成器设定种子gram,这样你就不会每次都得到相同的结果:
srand(time(0));
就可以了。哦,很抱歉,我已经在我的新文章中添加了这一点。嗯,我所说的“程序的开始”是指循环之前的
main()
中的某个地方。你不能把它放在那里
#include <iostream>
#include <cstdlib>
#include <windows.h>

using namespace std;
srand(time(NULL)); 

int main(){
    int botguess;
    int playerinput;
    int mi=1, ma=100;
    int turns = 0;
    cout<<" what do you want guessed:";

    cin>> playerinput;
    cout<< "time for me to start guessing\n";

    for(int i = 0;i < 50;i++) {
        botguess = rand() % ma + mi;

        if(playerinput > botguess){  //<--the problem 
            mi = botguess;
        }

        if(playerinput < botguess) {
            ma = botguess;
        }

        cout<<"Max:"<<ma<<"\n"<<botguess<<"\n";
        Sleep(1000);
        if(botguess == playerinput)
        {
            cout<<"you win";
        }
    }

    cin.get();
    return 0;
}
botguess = rand() % (ma - mi + 1) + mi