【C语言】猜随机数小游戏(知识点:如何产生一个随机值)

这篇博客介绍了如何使用C语言编写一个简单的猜数字游戏。游戏菜单包括开始游戏和退出选项。通过srand()和time(NULL)确保每次游戏生成不同的随机数,并在do-while循环中进行游戏流程控制,直到玩家选择退出。文章还强调了srand的正确使用方法以及获取指定范围随机数的技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

主要思想:建立一个函数打印游戏菜单,建立一个函数运行游戏,在主函数中用循环重复运行。

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
void menu()//------打印菜单
{

	printf("************************\n");
	printf("*****  1.开始游戏  *****\n");
	printf("*****  2.退出游戏  *****\n");
	printf("************************\n");
}
void game()//------游戏程序
{
	int guess = 0;
	int ret = rand() % 100 + 1;//生成1-100随机数
	printf("请猜一个数:\n");
	do {
		scanf("%d", &guess);
		if (ret > guess) {
			printf("猜小了\n");
		}
		else if (ret < guess) {
			printf("猜大了\n");
		}
		else {
			printf("你猜对了\n");
		}
	} while (guess!=ret);
}
int main()
{
	int input = 0;
	srand((unsigned int)time(NULL));//-----rand所需
	do {
		menu();
		scanf("%d", &input);
		switch (input) {
		case 1:
			game();
			break;
		case 2:
			break;
		}
	} while (input == 1);
	return 0;
}

 

知识点

1.当我们想要一个随机值的时候单单ret=rand()是不够的,因为我们多次获得一组随机数会发现是前后两组是一样的,这样我们就需要srand(),它的功能是括号里每有一个数,就可以生成对应的一个随机值,但是如果括号里的值不变呢,这就导致只能生成这一个随机值,所以我们要让括号里的值变化。但是我们本来就要一个随机值,你却还要让在括号里输入一个随机值,这样我们就需要时间戳,即用现在时间和计算机开始时间的插值转化的一个数字,就是time函数在给time输入一个空值NULL,再将time强制转换类型为unsigned int。而且要注意srand不要多次调用,否则产生的随机值变化范围极小。

2.我们如何获得想要的固定范围的随机数呢,拿1-100为例子,很简单只要将随机数除100取余再加+1,因为一个数除100取余就会产生0-99范围内的数字 再加1即1-100。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值