游戏要求
1.随机生成一个1-100之间的随机数
2.玩家猜数,如果不对则给出提示范围,直到正确为止。
函数准备
rand()函数
函数功能:随机生成一个1-32767之间的伪随机数。
int rand ();
使用rand()函数之前,需要引入库函数<stdlib.h>。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("%d", rand());
return 0;
}
1.由于rand()函数是根据它的种子来生成随机数
2.而它的种子默认值为1
3.所以直接使用时产生的是伪随机数,可以预测。
srand()函数
srand ((unsigned int)n);
1.程序中在调⽤ rand ()函数之前先调⽤ srand() 函数
2.通过 srand() 函数的参数n,来设置rand()函数⽣成随机数的时候的种子
3.只要参数n在变化,rand ()函数的种子就在变化,每次⽣成的随机数序列也就变化起来了。
4.srand()函数是不需要频繁调⽤的,⼀次运⾏的程序中调⽤⼀次就够了。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int main()
{
srand(1);
printf("%d", rand());
return 0;
}
但此时又需要给srand()函数的参数n一个随机值。
time()函数
函数功能:使⽤程序运⾏的时间作为种子(因为时间时刻在发⽣变化)
使用time()函数的时候需要包含头⽂件:<time.h>。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
srand((unsigned int)time(NULL));
printf("%d", rand());
return 0;
}
优化范围
1.生成0-99之间随机数
rand()%100
2.生成1-100之间随机数
rand()%100+1
3.生成a-b之间的随机数
a+rand()%(b-a+1)
代码实现
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 5
void make_menu()
{
printf("**欢迎来到猜数游戏**\n");
printf("********************\n");
printf("*******0.EXIT*******\n");
printf("*******1.PLAY*******\n");
printf("********************\n");
return;
}
void game()
{
int a = 0;
int num=rand()%100+1;
int chance = N;
printf("已生成一个1-100的随机数\n");
do
{
printf("你还有%d次机会\n",chance);
printf("请输入你要猜的数:\n");
scanf("%d", &a);
if (a > num)
{
printf("猜大了\n");
}
else if (a < num)
{
printf("猜小了\n");
}
else if (a = num)
{
printf("恭喜,猜对了\n");
}
} while (--chance);
if (chance == 0)
printf("很遗憾,你的机会已经用完,游戏失败\n");
}
int main()
{
srand((unsigned int)time(NULL));
int input = 0;
do
{
make_menu();
scanf("%d", &input);
switch (input)
{
case 0:
printf("退出游戏!\n");
break;
case 1:
printf("进入游戏!\n");
game();
break;
default:
printf("输入错误,请重新输入!\n");
break;
}
} while (input);
return 0;
}
标签:rand,游戏,int,函数,srand,printf,include,数字
From: https://blog.csdn.net/hsy1603914691/article/details/142302049