猜数字游戏实操(为初学者枯燥无味的学习提供小小的快乐,希望大家可以和我交流,肯定回复!)

一、需要用到的函数:


1.rand()

rand()函数用来产生随机数,但是,rand()的内部实现是用线性同余法实现的,是伪随机数,由于周期较长,因此在一定范围内可以看成是随机的。

rand()会返回一个范围在0到RAND_MAX(至少是32767)之间的伪随机数(整数)。

在调用rand()函数之前,可以使用srand()函数设置随机数种子,如果没有设置随机数种子,rand()函数在调用时,自动设计随机数种子为1。随机种子相同,每次产生的随机数也会相同。

rand()函数需要的头文件是:<stdlib.h>

rand()函数原型:int rand(void);


2.srand()

srand()函数需要的头文件仍然是:<stdlib.h>

srand()函数原型:void srand (usigned int seed);

srand()用来设置rand()产生随机数时的随机数种子。参数seed是整数,通常可以利用time(0)或getpid(0)的返回值作为seed。


3.time()函数

time()函数的用途:返回一个值,即格林尼治时间1970年1月1日00:00:00到当前时刻的时长,时长单位是秒。

time()函数的头文件:要使用time(),必须在程序中包含<time.h>头文件。

time()函数返回的数据类型:time_t time(time_t *t)

time()函数使用示例: time(NULL)


4.goto语句

用来将语句转移到想要进行的位置。


二、实操


1.包括的头文件:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>

2.游戏目录:

printf("目录:\n");
printf("1.猜数字游戏\n");
printf("2.退出\n");
scanf("%d", &input);

注:定义变量:

int input = 0;
int r = 0, n = 0, count;

3.循环语句实现猜数字:

printf("猜数字游戏:\n");
srand(time);
r = (rand() % 100 - 1 + 1) + 1;
printf("请输入一个n:");
scanf("%d", &n);
while (r != n)
{
	printf("猜错了!");
	if (n > r)
		printf("猜大了\n");
	else printf("猜小了\n");
	printf("请输入n:");
	scanf("%d", &n);
	count++;
}
printf("要猜的数是%d,猜了%d次\n", r, count);

注:生成a~b的随机数用a+rand()%(b-a+1)


4.游戏的继续运行:

printf("是否要继续进行游戏?\n");
printf("按Q继续进行游戏\n");
printf("按E退出游戏\n");
char d;
getchar();
scanf("%c", &d);


三、程序的完整展示

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>
int main()
{
	int input = 0;
	int r = 0, n = 0, count;
	again:
	count = 1;
	printf("目录:\n");
	printf("1.猜数字游戏\n");
	printf("2.退出\n");
	scanf("%d", &input);
	if (input == 1)
	{
		printf("猜数字游戏:\n");
		srand(time);
		r = (rand() % 100 - 1 + 1) + 1;
		printf("请输入一个n:");
		scanf("%d", &n);
		while (r != n)
		{
			printf("猜错了!");
			if (n > r)
				printf("猜大了\n");
			else printf("猜小了\n");
			printf("请输入n:");
			scanf("%d", &n);
			count++;
		}
		printf("要猜的数是%d,猜了%d次\n", r, count);
		printf("是否要继续进行游戏?\n");
		printf("按Q继续进行游戏\n");
		printf("按E退出游戏\n");
		char d;
		getchar();
		scanf("%c", &d);
		if (d == 'Q')
			goto again;
		else if (d == 'E')
			goto exit;
		else
			goto error;
	}
	else if (input == 2)
	{
	exit:
	printf("退出");
	system("pause");
	}
	else
	{
	error:
	printf("输入错误");
	system("pause");
	}
	return 0;
}
  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值