C++,电脑猜数程序,大一的作业的等级

题目描述
猜数游戏。玩家想好了一个1~1000之内的整数,由计算机来猜这个数。如果计算机猜出的数比玩家想的数大,则玩家输入1;如果计算机猜出的数比玩家想的数小,则玩家输入-1;这个过程一直进行到计算机猜中为止,玩家输入0。

输入
在计算机猜出的数小于想的数值时,输入-1;在计算机猜出的数大于想的数值时,输入1;在计算机猜中时,输入0。

输出
1~1000之内的整数,当键盘输入-1时,输出大于上一个输出的数值;当键盘输入1时,输出小于上一个输出的数值;当键盘输入0时,输出“Bingo”。

这个题目思路很清晰啊,使用random函数加一个while循环就搞定了啊

2分法 ,第一个猜500 ,大了 就250 ,少了就 750.以此类推 ,直到猜出结果,但是显得太机械化
就是为了表示一些人性化。随机数。1-1000的随机数N,大了 1-N之间的随机数。有点意思,不会太死板。

首先定义两个数,一个是自己想的,假设为(myNumber)需要输入,另一个是接收电脑随机数的(随机数的写法见百度),假设为(computerNumber),定义一个flagNumber存自己上一个输出的数值,然后比较两个数

if(myNumber > computerNumber){
输出1
保存当前输出的数
}else if(myNunber<computerNumber){
输出-1
保存当前输出的数
}else if(myNumber == -1){
取flagNumber-1000的整数(不包含flagNumber)
保存当前输出的数
}else if(myNumber == 1){
取1-flagNumber之间的整数
保存当前输出的数
}else if(myNumber == 0){
输出Binggo
保存当前输出的数
}else if(myNumber == computerNumber){
输出0
保存当前输入的数
}
我是学java的 可能跟C的写法不一样,但是逻辑就是这么个逻辑,应该没有什么出入 当你输入-1,1,0的时候我觉得应该是没必要保存的,不然就没啥意思了

```int main()
{
int nRand = rand() % 1000;
int nNum = 0;
cin >> nNum;

while(1)
{
    if (nNum == nRand)
    {
        cout <<"Bingo"<<endl;
        break;
    }
    if (nNum < nRand)
    {
        cout << -1 <<endl;
    } 
    else
    {
        cout << 1 <<endl;
    }
    cin >> nNum;
}
return 0;

}