猜数字游戏(c语言)

猜数字游戏(c语言)

编译环境:vs2013

题目:

系统随机给出一个数字,限制在一定范围内,用户进行猜测,会给用户提示大小。

思路:

用户在程序之外输入一个随机数;
如果比随机数大,就输出太大了;
如果比随机数小,就输出太小了;
如果与随机数相等,就输出你猜中了。

首先,生成一个随机数。我们要明确获得随机数,需要使用rand函数,rand() 会随机生成一个位于 0 ~ RAND_MAX 之间的整数,我们不需要知道RAND_MAX的值只需要把它当作一个很大的值。别忘记引用time()函数的头文件:

#include<stdlib.h>

但是,我们在使用中会发现,随机获得的数每次都一样,这是因为随机数是根据另一个值得到的,这个值叫做“种子”,种子会在每次启动计算机时随机一个,但是启动之后它就不会改变。我们为了避免每次随机到的数一样,需要通过srand()函数来重新“播种”,这样种子就会发生改变。
我们在实际开发中可以用系统时间来做种子,种子不同,最终的随机数也就会不同。

#include<stdlib.h>
#include<time.h>
int game()
{
	srand(time(NULL));
	int num=rand()%100;       //大于100的数字最后都会被取余下来成0~99的数字
}

为了限定一个不要太大的范围,可以通过%100,将范围限定在0~99之间。
之后,就是运用if条件语句判断,如果输入的数大于生成数—>提示"太大了";如果输入的数小于生成数—>提示"太小了";如果输入的数等于生成数—>提示"恭喜你猜对了!"。

主体:

我们可以先设置一个菜单

void menu()
{
	printf("**********************************\n");
	printf("*****       1、play          *****\n");
 	printf("*****       0、exit          *****\n");
 	printf("**********************************\n");
}

然后编写游戏模块

int game()
{
	srand(time(NULL));
	int num=rand()%100;
	while(1{
		int input;
		printf("请输入你猜测的数字:");
		scanf("%d",&input);   //注意:scanf的%d后面没有空格或\n
		if(input>num)
		{
			printf("太大了\n");
			continue;
		}
		if(input<num)
		{
			printf("太小了\n");
			continue;
		}
		printf("恭喜你猜对了!\n");
		break;
	}
	return 0;
}

然后是主函数部分

#include<stdlib.h>
#include<time.h>
#include<stdio.h>
int main()
{
	int input=0;
	do
	{
		menu();
		printf("请选择:\n");
		scanf("%d",&input);
		switch(input)
		{
		case 1:
			game();
			break;
		case 0:
			printf("退出游戏\n");
			bresk;
		default:
			printf("输入错误\n");
			break;
		}
	}while(input); 
	return 0;
}

运行结果

在这里插入图片描述

猜数字游戏逻辑比较简单,但我们需要搞清楚每个细节,不断积累自己的代码量。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值