猜1-100数字游戏

逻辑是:电脑随机输出值 ,我们来猜 ,猜大了 告诉我们猜大了 ,猜小了 告诉我们猜小了

1.先在主函数里用do while 来实现至少一次游戏

void menu()
{
	printf("=============================\n");
	printf("||          1.play         ||\n");
	printf("||          1.exit         ||\n");
	printf("=============================\n");
}
int main()
{
	int input;
	do
	{
		menu();
		printf("请选择:\n");
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			printf("开始游戏\n");
			play();
			break;
		case 0:
			printf("退出游戏\n");
			break;
		default:
			printf("输入错误,请重新输入\n");
			break;
		}
	} while (input);
}

假如输入1,猜对数字后,break跳出循环 ,进入while(input),再次选择input, 若选择0退出游戏,若选择其他数字再次进入do while 循环

 

2,电脑生成随机值,用到rand函数 

在cplusplus查到可知:

RAND_MAX转到定义得:(记得加头文件)

 

 即随机数范围0~RAND_MAX  0-32767

1,0版

 

 

两次调试结果一样

 

 即在使用rand函数前还需调用srand

 

通过以上调整可以发现·: srand参数随机,电脑也会给个随机值

即想到时间戳

 即电脑此时此刻运行代码的时间和计算机起始时间的差值  即调用time函数

 参数为指针,不想用这个参数 直接空指针就可以了  我们现在只想要他的返回值

类型为 time_t 转到定义

 

 

 参数类型为unsigned int  ,即time的返回类型是unsigned int ,强制转换

 

又因为

 我们发现几次随机值是一样的 则srand只需调用一次最好 放在rand前面即可

最终代码

#include <stdlib.h>
#include <time.h>
void menu()
{
	printf("=============================\n");
	printf("||          1.play         ||\n");
	printf("||          1.exit         ||\n");
	printf("=============================\n");
}
//rand生成一个随机数 0-RAND_MAX 0-32767
void play()
{
	int guess;
	int ret = rand()%100+1;
	while (1)
	{
		scanf("%d", &guess);
		if (guess < ret)
		{
			printf("猜小了\n");
		}
		else if (guess > ret)
		{
			printf("猜大了\n");
		} else {
			printf("恭喜你,猜对了\n");
			break;
		}
	}

}
int main()
{
	int input;
	srand((unsigned int)time(NULL));//设置随机数生成器

	do
	{
		menu();
		printf("请选择:\n");
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			printf("开始游戏\n");
			play();
			break;
		case 0:
			printf("退出游戏\n");
			break;
		default:
			printf("输入错误,请重新输入\n");
			break;
		}
	} while (input);
}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值