使用c语言代码来实现(简单的)猜数字游戏!!!

目录

完整代码 

 

代码详解 srand((unsigned int)time(NULL))

srand和rand的关系 

举个例子:

srand函数 

主要代码:ret=rand()%100+1 

了解时间戳 


完整代码 

#include<stdio.h>
#include<stdlib.h>
#include<time.h>//
void menu()//菜单 
{
	printf("*********************\n");
	printf("***  1.play 2.exit***\n");
	printf("*********************\n");
}
void game()
{
	int ret=0,guess=0;
	ret=rand()%100+1;//时间戳,使用可以得到随机数 
	//%100是为了得到1-99数的范围,+1使其能够产生1-100的随机数 
	while(1)//是真就执行 
	{
		printf("请猜数字:");
		scanf("%d",&guess);
		if(guess>ret)
		{
			printf("猜大了!\n");
		} 
		else if(guess<ret)
		{
			printf("猜小了!\n");
		}
		else
		{
			printf("恭喜你,猜对了!!!\n"); 
			break;
		}
	}
}
int main()
{
	int input=0;
	srand((unsigned int)time(NULL));
	do
	{
		menu();
		printf("请选择:");
		scanf("%d",&input);
		switch(input)
		{
			case 1:
				game();
				break;
		    case 0:
		    	printf("退出游戏!\n");
				break;
		    default:
			     printf("选择错误!\n");
				 break; 
		 } 
	}while(input);
	return 0;
}

代码详解 srand((unsigned int)time(NULL))

srand((unsigned int)time(NULL)) 是一行代码,用于在 C/C++ 程序中设置随机数种子。它是通过将当前时间(转换为无符号整数)作为种子,来初始化伪随机数生成器

在程序中使用随机数时,需要先调用srand函数来设置种子,然后才能通过调用rand函数生成随机数。通过设置不同的种子,可以获得不同的随机数序列。

这行代码的作用是在每次程序运行时,使用当前时间作为种子,以确保每次运行时都能够生成不同的随机数序列。这样可以增加随机性,使得每次运行程序时都能够得到不同的结果。

srand和rand的关系 

 srandrand 都是 C 语言中的函数,是一对典型的组合srand 用于设置随机数生成器的种子,而 rand 则用于生成伪随机数

在调用 srand 函数之后,每次调用 rand 函数都会返回一个不同的随机数(组合在一起的作用)。这是因为 rand 函数使用了伪随机数生成器,该生成器依赖于当前的种子值。当我们调用 srand 函数来设置种子时,就可以控制随机数的生成。

通常情况下,我们在程序中只需要调用一次 srand 函数即可,然后多次调用 rand 函数来生成不同的随机数如果程序中有多个 srand 函数的调用,则会导致随机数生成出现问题

举个例子:

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

int main() {
    int i;

  
    srand((unsigned int)time(NULL));// 设置随机数种子为当前时间(先使用了srand函数)

    printf("10 random numbers between 0 and 99:\n");

    // 生成10个随机数并打印出来
    for (i = 0; i < 10; i++) {
        int random_number = rand() % 100; // 生成0到100之间的随机数(再使用rand函数)
        printf("%d ", random_number);
    }

    return 0;
}

下面是一个例子展示了如何使用 srandrand 函数生成随机数:

在这个例子中,我们使用 srand 函数将当前时间作为种子来设置随机数发生器。然后,我们使用 rand 函数生成10个0到99之间的随机数,并将它们打印出来。

srand函数 

srand 函数是 C 语言和 C++ 语言中用于设置伪随机数发生器的种子的函数在调用 srand 函数之后,可以使用 rand 函数来生成伪随机数。

通常情况下,我们会在以下情况下使用 srand 函数:

  1. 当需要产生随机数的时候:比如在游戏开发中,需要产生随机的地图布局、敌人位置等。
  2. 当需要模拟随机事件的时候:比如在统计学中进行随机抽样,或者在模拟实际情况下的随机事件。

下面是 srand 函数的一般使用方法:

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

int main()
{
    srand((unsigned int)time(NULL)); // 设置随机数种子为当前时间
    int random_number = rand();
    printf("Generated random number: %d\n", random_number); // 生成并打印随机数
    return 0;
}

在这个例子中,我们包含了 <stdlib.h> <time.h> 头文件来使用 srand 函数和 time 函数。然后,我们调用 srand 函数,将当前时间作为种子,接着调用 rand 函数生成一个随机数,并将其打印出来。 

主要代码:ret=rand()%100+1 

ret = rand() % 100 + 1 是一行常见的代码,用于生成一个介于 1 和 100(包括 1 和 100)之间的随机整数,并将其赋值给变量 ret

下面是对这行代码的详细说明:

  1. rand() 函数:它是 C 语言中的一个库函数,用于生成伪随机数rand() 函数会返回一个范围在 0 到 RAND_MAX 之间的整数,其中 RAND_MAX 是一个常量,表示 rand() 函数能够生成的最大伪随机数。通常情况下,RAND_MAX 的值至少是 32767。

  2. % 运算符:它是 C 语言中的取模运算符,用于计算两个数相除后的余数。在这行代码中,rand() % 100 表示计算 rand() 函数返回的随机数除以 100 的余数,结果的范围是 0 到 99。

  3. + 1 运算符:它将取模运算的结果加上 1,以将范围从 0 到 99 扩展到 1 到 100。最终的结果是一个 1 到 100 之间的整数。

  4. 变量 ret:这是一个用于存储随机整数的变量。通过赋值操作符 =,将生成的随机整数赋值给变量 ret

这行代码的目的是生成一个范围在 1 到 100 之间的随机整数,并将其存储在变量 ret 中,以便后续使用。可以根据需要修改代码中的范围或变量名,以适应具体的应用场景。

了解时间戳 

时间戳(pTimestam)是指标准的时间表示形式,一般是一个数字或字符串,可以表示某个事件发生的精确时间。在计算机中,时间戳通常是从某个特定的起始点开始计算经过的秒数或毫秒数,这个特定的起始点可以称为“基准时间”。

时间戳可以用于存储、传输和比较时间信息,常见的应用场景包括:

  • 网络通信:在网络通信中,常常需要将时间戳作为时间参考值,以便确定消息的发送和接收时间。
  • 数据库操作:在数据库中,时间戳通常被用来记录数据的创建或更新时间,以便进行数据的排序和查询。
  • 日志记录:在日志记录中,时间戳可以用来记录事件的发生时间,以便进行事件的排列和分析。

对于不同的编程语言,时间戳的实现方式可能会有所不同在 C 语言中,可以使用 time 函数获取当前的时间戳,该函数返回一个 time_t 类型的值,表示自 1970 年 1 月 1 日 00:00:00 GMT 起到现在的秒数。在 Python 中,可以使用 time.time() 函数获取当前时间戳,该函数返回一个浮点数,表示自 1970 年 1 月 1 日 00:00:00 GMT 起到现在的秒数。

除了表示自 Unix 基准时间起的秒数以外,还有一种常见的时间戳表示方式是使用 ISO 8601 标准格式的日期和时间字符串表示,例如 "2022-01-01T12:00:00Z" 表示在 UTC 时间下的 2022 年 1 月 1 日中午 12 点的时间戳。这种时间戳表示方式更易读,但需要进行时间格式化和解析的操作。

总之,时间戳是一种常见的时间表示形式,可以用于存储、传输和比较时间信息,对于数据排序、网络通信、日志记录等应用场景都有着重要的作用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

~莫子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值