#define _CRT_SECURE_NO_WARNINGS 1//vs小缺点,不是vs可以删了这行
//猜数字游戏
//1.电脑随机生成数
//2.玩家猜数字
//告知猜测情况
//3.游戏可以一直玩
#include<time.h>
#include<stdio.h>
#include<stdlib.h>
void play()//游戏本体
{
int t,k;
k = rand()%100+1;//这里以1到100的猜数字为例子
printf("请输入第一个数字:\n");
do
{
scanf("%d", &t);
if (t > k)
{
printf("大了!\n");
continue;
}
if (t < k)
{
printf("小了!\n");
continue;
}
if (t == k)
{
printf("恭喜你猜对了,是%d\n", t);
break;
}
} while(1);
}
int main()
{
int a, b, c;
srand((unsigned int)time(NULL));
do
{
printf("1.play\n");
printf("0.exit\n");
scanf("%d",&a);
switch (a)
{
case 1:
printf("您已开始猜数字游戏!\n");
play();
break;
case 0:
printf("退出游戏.\n");
break;
default:
printf("输入错误,请重新输入!\n");
break;
}
} while (a);//a为0判定为假循环结束即退出游戏
return 0;
}
有关随机数的实现
在一次性程序中我们可以用头文件下的srand();库函数来产生随机数
但是我们很快就会发现多次启动程序运行的结果一致
为什么?
其实在rand库函数运用之前需要调用一次srand()库函数来产生rand随机值
具体状况如下
我们便可知:当srand的括号中出现一个值时便会产生一个对应的随机的值
那我们使srand括号中的值变得随机不就行了吗?
。。。。
那我们如何在非人为情况下产生随机值呢
调用头文件中的time库函数引用时间戳。
(简单来说由于我们的时间在一分一秒地变化,那么与其绑定的time的值也在改变,这样我们就获得了随机值)
|