要求:先由计算机“想”一个1到100之间的数请人猜,如果人猜对了,则计算机给出提示:“Right!”, 然后结束游戏; 否则提示:“Wrong!”,并告诉人所猜的数是大(Too high)还是小(Too low),生成的数是什么,只猜一次。
注意:猜数游戏用到的库函数——随机函数srand为函数rand()设置随机数种子来实现对函数rand所产生的伪随机数的 “随机化”。 随机函数srand 需要用到的头文件 #include <stdlib.h>
(1)通过键入随机数种子,产生[0,100]之间的随机数。(此步骤可省略,上文代码即省略了键入随机数种子)
cin>>seed;
srand(seed);
magic = rand()%100 + 1;
(2)使用计算机读取其时钟值并把该值自动设置为随机数种子,函数time()返回以秒计算的当前时间值。需要用到的头文件:
#include
srand(time(0));
magic = rand() % 100 + 1;
提升:每次猜数后告诉人过大还是过小,直到猜对才停止。统计猜数次数,以反映人的猜数水平。
#include <iostream>
#include <stdlib.h>
#include <ctime>
using namespace std;
int main()
{
int magic,n;
srand(time(0));
magic = rand() % 100 + 1; //生成0-100的随机数
for (; magic <= 100; )
{
cin >> n;
if (n == magic)
{
cout << "Right!";
break;
}
else
{
cout << "Wrong!"<<endl;
if (n > magic)
cout << "Too high" << endl;
else
cout << "Too low" << endl;
}
}
return 0;
}
(本人还在学习中,如有错误之处,恳请大佬指出,如有代码优化的思路,也欢迎您不吝赐教)