”猜数字“

思路与步骤

设计这个猜数字游戏,我们先要电脑去生成一个随机数,然后再用我们输入的数与随机数相比较
如果我们输入的数小于随机数,则输出猜小了,如果我们输入的数大于随机数,则输出猜大了,
如果我们输入的数等于随机数,那么输出恭喜你,猜对了。
第一步:生成一个随机数
第二步:判断输入的数与随机数的大小

代码的实现

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
//猜数字
//先生成随机数
//然后比较,如果输入值比生成的随机数小,则提示猜小了
//如果输入值比生成的随机数大,则提示猜大了
//如果输入值比生成的随机数相等,则恭喜你,游戏结束了
void menu()
{
    
    
	printf("******************************\n");
	printf("*******    0.exit       ******\n");
	printf("*******    1.play       ******\n");
	printf("******************************\n");

}
void game()
{
    
    
	//生成随机数
	int ret = rand() % 100 + 1;//任何数%100->0-99  %100+1->1-100
	//使用rand函数需要调用srand函数,在srand函数中我们用时间戳参数,时间戳在不停的变化,这样生成的随机值才是随机的。
	// rand函数是一个伪随机数生成函数
	// rand函数生成的随机数的范围是0- RAND_MAX(32767)
	printf("%d", ret);
	//猜数字
	int guees = 0;
	int count = 1;
	while (count)
	{
    
    
		printf("请输入>:");
		scanf("%d", &guees);
		if (guees < ret)
		{
    
    
			printf("猜小了\n");
		}
		else if (guees > ret)
		{
    
    
			printf("猜大了\n");
		}
		else
		{
    
    
			printf("恭喜你,猜对了\n");
			break;
		}
		count++;
		if (count == 4)//设置次数,如果三次还没有猜对,那么游戏就结束了
		{
    
    
			printf("输入次数已用完,游戏结束\n");
			break;
		}
	}
}
int main()
{
    
    
	int input = 0;
	//因为time函数的返回类型是time_t,但是srand函数的参数类型是unsigned int,所以需要强制转换一下
	srand((unsigned int)time(NULL));//用一个时间戳来生成一个随机值
	do
	{
    
    
		menu();
		printf("请选择>:");
		scanf("%d", &input);
		switch(input)
		{
    
    
		case 0:
			printf("游戏结束\n");
			break;
		case 1:
			game();
			break;
		default:
			printf("输入错误,请重新输入\n");
			break;
		}
	} while (input);
	return 0;
}

注意事项

rand函数与srand函数和time函数
rand函数
rand函数是一个产伪随机数的函数
rand函数产生随机数有范围1-RAND_MAX(32767)
rand函数在生成随机数前,要使用srand函数设置随机数的生成器
rand函数返回的数据类型是整型,无参数。
srand函数
没有返回类型,参数的类型是unsigned int类型
在使用rand函数之前需要调用srand函数来设置随机数,从而使rand函数生成随机数
如果设置的数是唯一的那么rand函数生成的随机数也是唯一的,所以我们这用时间戳设置
time函数
用到时间戳,在c语言中time函数可以实现这个功能。
在这个函数中返回的数据类型是time_t参数是time_t* 的指针
什么是时间戳,我们先看下邮戳
邮戳:邮戳是邮局盖在实寄过的邮件包裹等上的各类戳记,每一个邮戳代表的是每一种的信件。
时间戳:一个能表示一份数据在某个特定时间之前已经存在的、 完整的、 可验证的数据,通常是一个字符序列,唯一地标识某一刻的时间。
说白了就是时刻,不断变化的时间。

猜你喜欢

转载自blog.csdn.net/HD_13/article/details/132434298
今日推荐