猜数字游戏(C语言版)

目录

1.思路

2.代码实现

3.细节讲解

        3.1使用的函数

        3.2rand函数和srand函数的使用


1.思路

        实现一个猜数字游戏,首先我们应该要产生一个随机数,我们可以调用rand()这个函数,然后我们就应该进行猜数字游戏了,我们猜的时候,数字要有一个范围,如果数字没有范围那么我们是很难猜对的,猜数字的时候得有吧!提示我们猜的数字是大了还是小了吧,不然我们怎么进行下一次输入,猜数字的时候应该要猜多次,猜一次猜对的概率是很小的吧,所以我们得有一个循环来让我们来反复输入数字直到猜对为止吧!按照我们的思路让我们来实现一下这个小游戏!

2.代码实现

#include<time.h>
#include<stdio.h>
#include<stdlib.h>
void menu()
{
	printf("***********************************\n");
	printf("***********猜数字游戏**************\n");
	printf("*********1.play      0.exit********\n");
	printf("***********************************\n");
}
void game()//游戏逻辑实现
{
	int guess = 0;//
	
	int secret = rand()%100+1;
	while (1)//先死循环,猜对的时候用break结束循环
	{
		printf("请输入数字:>\n");
		scanf("%d", &guess);//接收要猜的数字
		if (secret < guess)
		{
			printf("猜大了!\n");
		}
		else if (secret > guess)
		{
			printf("猜小了!\n");
		}
		else
		{
			printf("恭喜你猜对了!%d\n", secret);
			break;//结束程序
		}

	}
}
int main()
{
	srand((unsigned)time(NULL));
	int input = 0;
	do
	{
		menu();//打印菜单
		//提示一下
		printf("请选择:>\n");
		scanf("%d", &input);//接收输入的选择
		switch (input)
		{
		case 1:
			game();//猜数字游戏
			break;
		case 0:
			printf("退出游戏!\n");
			break;
		default:
			printf("输入错误,请重新输入:\n");
			break;
		}
	} while(input);
	return 0;
}

3.细节讲解

        3.1使用的函数

        因为要产生随机数所以要使用rand()函数,使用rand函数要使用srand()函数来设置随机数生成器,而srand()函数需要设置随机数生成起点,有点好笑,我们需要随机数现在却需要给srand()给一个变化的数字作为随机数,变化的数字我们可能最先想到的是时间,因为时间每时每秒都是变化的,所以我们又需要time()函数来获取时间戳(时间戳是指一个字符序列,唯一地标识某一刻的时间,现在的时间戳是从1970.1.1.0:0:0),来设置随机数生成起点。在程序中只需要设置一次不需要设置多次不然每次我们猜的数字都是变化的

所以我们需要的头文件有stdlib .h stdio.h time.h 

        3.2rand函数和srand函数的使用

         srand()函数需要我们给一个无符号的整数,但是time函数返回的数是一个有符号的六十四位数字,所以我们需要强制类型转换。rand函数产生的数字是从0 —— RAND_MAX(32767),但是我们只需要1到100的数字所以要对rand产生的数组%100+1;因为while是死循环所以当我们猜对的时候需要用break语句来结束循环。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值