#include<iostream>
using namespace std;
int main()
{
int num = 0;
int guess = rand() % 100 + 1;
while (1)
{
cout << "请输入一个1~100以内的整数" << endl;
cin >> num;
if (num > guess)
{
cout << "你猜的大了!" << endl;
}
else if(num < guess)
{
cout << "你猜的小了!" << endl;
}
else
{
cout << "恭喜你,猜对了!" << endl;
break;
}
}
system("pause");
return 0;
}
关键在于如何退出循环,但是要注意这个代码是有问题的,rand()生成的随机数是一个伪随机数,因此需要引进一个新的机制来生成每次都不一样的随机数。
因此就引进了随机数种子,它是利用当前系统时间来生成随机数,防止每次生成的随机数都不一样。这里需要用到srand((unsigned int)time(NULL))
,但是使用这行代码需要添加包含time系统时间的头文件include <ctime>
改进算法
#include<iostream>
#include<ctime>
using namespace std;
int main()
{
int num = 0;
int digit = 0;
srand((unsigned int)time(NULL));
int guess = rand() % 10 + 1;
while (1)
{
cout << "请输入一个1~10以内的整数" << endl;
cin >> num;
if (num > guess&&digit<=3)
{
cout << "你猜的大了!" << endl;
digit++;
}
else if(num < guess&&digit <= 3)
{
cout << "你猜的小了!" << endl;
digit++;
}
else
{
if (num=guess&&digit <= 3)
{
cout << "恭喜你,猜对了!" << endl;
break;
}
else
{
cout << "您五次都没猜对,游戏结束" << endl;
break;
}
}
}
system("pause");
return 0;
}
这里加入了猜数的计数器,如果五次都没猜对,结束游戏。