猜数字游戏

刚学完分支循环语句,来做一个猜数字游戏的练习

一、游戏菜单

我定义了一个没有返回值的无参函数men,来存放游戏菜单代码。

//游戏菜单界面
void men()
{
	printf("********************\n");
	printf("*******1、play******\n");
	printf("*******2、quit******\n");
	printf("********************\n");
}

二、游戏主要功能 

2.1、生成随机数

定义了一个game函数,来实现猜数字游戏的功能。

第一个问题是产生一个随机数的问题,C语言提供了rand函数来生成随机数。使用rand函数时要包含<stdlib.h>头文件,rand返回0~RAND_MAX之间的数,RAND_MAX的大小依赖编译器的定义。

但当我们用rand函数时,发现两次生成的随机数一样

int main()
{
    int a =0;
    a=rand();
    printf("%d",a);
}

因为rand函数生成随机数是根据一个叫“种子”的基数来运算生成随机数的,种子默认是1。

所以使用rand函数之前要用srand函数来初始化这个种子。

srand的定义是

viod srand(unsigned int seed);

 要通过seed这个参数来设置rand函数生成随机数的种子。

我们用时间作为参数来赋值给srand函数。

C语言给了一个获得时间戳的函数time,使用time函数要包含<time.h>头文件。

time_t time(time_t timer);

time_t是一个长长整形类型的返回值,参数是一个指针。

所以我们生成随机数代码为:

#include <stdlib.h>
#include <time.h>
viod game()
{
    int a = 0;
    srand((unsignedint)time(NULL));
//生成0~100之间的数
    a=rand()%100+1;
}

2.2、猜数字对比

猜的数字大了,提示猜大了,猜的数字小了,提示猜小了,猜对,提示恭喜你猜对了,还要继续玩吗。因为猜不对要一直猜,所以要在while循环里。

while(1)
{
	printf("请输入要猜的数:");
	scanf("%d", &b);

if (a > b)
	printf("猜小了\n");
else
{
	if (a < b)
		printf("猜大了\n");
	else
	{
		printf("恭喜你猜对了,还要继续玩吗。\n");
		break;
	}
}
}

三、总代码

链接:马飞扬/猜数字游戏 - 码云 - 开源中国 (gitee.com)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值