C语言----猜数字小游戏实现

#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的值也在改变,这样我们就获得了随机值)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值