一:在C语言里不像在其他编程语言有random等相关操作可以很容易生成对应的随机数。
在C语言中想要生成随机数得借助库函数rand,并且借助时间戳。
二:下面我们用一个猜数字的小游戏直接进行进行相关的操作和解释。
1:#define _CRT_SECURE_NO_DEPRECATE 1//这个是vscode2019里的一个scanf需要引用的东西
// 猜数字游戏实现
//电脑随机生成一个1~100之间的数字
//猜数字
//如果你猜小了,告知猜小了
//如果你猜大了,告知猜大了
//如果你猜对了,告知猜对了
2:#include <stdlib.h>//这个是rand需要引用的库函数
#include <time.h>这个望文生义是一个下面time需要引用的一个库函数
3:这个游戏之前需要打印的菜单
void menu()
{
printf("*********************************\n");
printf("********** 1. play ************\n");
printf("********** 0. exit ************\n");
printf("*********************************\n");
}
4:rand函数可以生成随机数,但是rand在使用的时候由上图可知需要用到strand函数那就得了解下这
个函数由下图可知这个函数的参数是个正整数(所谓的种子),其实就是这个函数你只要给他一个可变的参数(正整数),就可以让rand达到随机变化的目的。什么是变化的无时无刻,对就是时间。因此给他的参数就用时间来写。
//返回一个0~RAND_MAX(32767)
void game()
{
int guess = 0;
//1. 生成随机数
int ret = rand()%100+1;//0~99-->1~100
//printf("%d\n", ret);
//2. 猜数字
while (1)
{
printf("请猜数字:>");
scanf("%d", &guess);
if (guess < ret)
{
printf("猜小了\n");
}
else if (guess > ret)
{
printf("猜大了\n");
}
else
{
printf("恭喜你,猜对了\n");
break;
}
}
}
int main()
{
int input = 0;
//设置随机数的生成器
5:就是这里可以看到时间函数里是需要一个指针即可(就是生成当时的时间),那我们就用空指针(下面也说了可以用空指针)来代替。
srand((unsigned int)time(NULL));
do
{
menu();
printf("请选择:>");
scanf("%d", &input);
switch (input)
{
case 1:
game();
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("选择错误,重新选择!\n");
break;
}
} while (input);
return 0;
}
就这样随机数就被我们生成了。
新人菜鸟一个,大家有问题欢迎指正。