#include<stdlib.h>//srand的头文件
#include<time.h>//time的头文件
void game()
{
int i = 0;
int guess = 0;//定义用户输入的数字
int ret = 0;//定义ret变量用来存放随机生成的数字
ret = rand() % 100 + 1;//通过rand函数来生成随机数,由于rand函数生成随机数的范围是0-32767(0x7fff),所以对rand()除以100取模,从而得到0-99的数字,再加1得到0-100的数字。
printf("%d\n", ret);
for ( i = 0; i < 10; i++)
{
printf("请猜数字:>");//屏幕上输出“请猜数字”
scanf("%d", &guess);//接受用户输入的数字
if (guess > ret)//对用户输入的数字和随机生成的数字做对比
{
printf("猜大了\n");
}
else if (guess < ret)
{
printf("猜小了\n");
}
else if (guess == ret)
{
printf("恭喜你,猜对了\n");
break;
}
}
if (i=10)
{
printf("猜了十次都没猜对,你好low!\n");
}
}
void menu()//菜单函数
{
printf("**************猜*****数****字***********\n");
printf("*** 1. play 0.exit ***\n");
printf("**************游*********戏************\n");
}
int main()//主函数
{
srand((unsigned int)time(NULL));//rand函数在产生随机数前,需要系统提供的生成伪随机数序列的种子,rand根据这个种子的值产生一系列随机数。如果系统提供的种子没有变化,每次调用rand函数生成的伪随机数序列都是一样的。srand(unsigned seed)通过参数seed改变系统提供的种子值,从而可以使得每次调用rand函数生成的伪随机数序列不同,从而实现真正意义上的“随机”。通常可以利用系统时间来改变系统的种子值,即srand(time(NULL)),可以为rand函数提供不同的种子值,进而产生不同的随机数序列。
int input = 0;
do
{
menu();
printf("请选择>:");
scanf("%d", &input);
switch (input)
{
case 1:
game();
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("选择错误\n");
break;
}
} while (input);//input为0结束循环,若为非0则继续循环;
return 0;
}
标签:十次,rand,游戏,int,ret,随机数,printf,仅限,数字 From: https://blog.51cto.com/u_16214913/7111593