随机数的生成和猜数字游戏

本文介绍了C语言中随机数的生成方法,包括使用`rand`函数、设置随机数种子的`srand`函数以及利用`time`函数获取当前时间作为种子。同时,通过一个猜数字游戏实例展示了如何在实际编程中应用这些概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.随机数的生成

1.rand

(1)格式 int rand (void);
(2)需要头文件 stdlib.h
(3)生成伪随机数,大小以来编译器上实现,一般最大为32767,不是真正的随机数,虽然它一次可以产生不同的数,但是再运行一次就和上一次一样,正真的随机数是无法预测它下一次大小

2.srand

(1)格式 void srand(unsigned int seed);
(2)srand是用来生成随机数的,在调用rand之前先调用scand函数,通过它的参数seed来设置rand函数生成随机数的种子,那也就是说scand的种子如果是随机的,rand就可生成随机数,在生成随机数的时候又需要一个随机数那么就矛盾了

3.time

(1)格式 time_t time (time_t* timer);
(2)需要头文件time.h
(3)time的函数timer如果是非NULL,那么就将差值返回到所指内存中去,如果是NULL,那么就只返回这个时间的差值,称为时间戳
(4)一般随机数种子用时间来设置,time会返回当前日历时间,是从1970年1月1日0时0分0秒开始到现在时间的差值,单位秒,time_t是32位或64位机的整型类型

4.随机数范围

a - b的数 : a +rand()%(b-a+1)
例如100-200:1+rand()%(200-100+1)

(二)猜数字游戏

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
void menu()
{
	printf("******************\n");
	printf("****1.开始游戏****\n");
	printf("****2.结束游戏****\n");
	printf("******************\n");
}
void game() 
{
	int a = rand() % 100 + 1;
	int guess = 0;
	int count = 5;
	while (count)
	{
		printf("还有%d次机会\n", count);
		printf("输入要猜的数字");
		scanf("%d", &guess);
		if (guess > a)
		{
			printf("猜大了\n");
		}
		else if (guess < a)
		{
			printf("猜小了\n");
		}
		else
		{
			printf("恭喜你,猜对啦\n");
			break;
		}
		count--;
	}
	if (count == 0)
	{
		printf("猜数字失败,正确的值是%d", a);
	}
}
int main()
{
	int num = 0;
	srand((unsigned int)time(NULL));
	do
	{
		menu();
		printf("请选择>");
		scanf("%d", &num);
		switch (num) {
		case 1:
			game();
			break;
		case 2:
			printf("退出游戏\n");
			break;
		default:
			printf("输入错误\n");
			break;
		}
	} while (num);
	return 0;
}

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值