1.电脑自动生成1到100的随机数
2.玩家猜数字,猜数字过程中,根据数字大小给出大了或小了的反馈,直到猜对,游戏结束
思路:
1.利用rand函数可以生成随机值,但是rand函数是伪随机值,rand函数默认生成随机数的种子为1因此每次生成随机数都一样。
2.引入srand来初始化随机数,即初始化rand函数的种子。
srand函数原型void srand(unsigned int seed)
3.因为时间是时刻都在变化的,因此将时间作为srand函数的seed
即为void srand(unsigned int)time(NULL)
注:time(NULL)调用函数返回时间戳,这里没有接收返回值
#include <stdio.h>
#include <stdlib.h>
#include<time.h>
void game()
{
int r = rand() % 100 + 1;/*/n的余数范围是0到n - 1,得到随机数范围是0到100 如果是a到b的随机数范围是a + rand(b - a + 1);*/
int a = 0;
int cout = 5;//限制五次
while (cout)
{
printf("你还有:%d次机会\n", cout);
printf("猜数字游戏,请输入\n");
scanf_s("%d", &a);
if (a > r)
{
printf("猜大了\n");
}
else if (a < r)
{
printf("猜小了\n");
}
else
{
printf("猜对了\n");
break;
}
cout--; //五次用完等于零为假,不进入循环
}
if (cout == 0)
printf("笨蛋正确值为%d\n", r);
}
void menu()
{
printf("1.开始游戏\n");
printf("2.结束游戏\n");
}
int main()
{
int input = 0;
/*srand函数是用来初始化随机数的生成器,原型srand(unsigned int seed)*/
srand((unsigned int)time(NULL));//利用时间随时变化来作为随机数基准
do
{
menu();
printf("请选择");
scanf_s("%d", &input);
switch (input)
{
case 1:
game();
break;
case 2:
printf("游戏结束\n");
break;
defalt:
printf("出错了\n");
break;
}
} while (input);
return 0;
}