* 原始文章地址可能暂时无法访问,仅展示文章的摘要信息

从猜数字程序来理解结构和随机数 | C语言基础」的摘要信息

由于博主过去学过Python,本篇文章中会有很多对照的分析。 本次为了更利于各部分的理解,我们从一个简单的猜数字程序的实现来说起… 1. 程序实现流程图: 2. 随机数生成 Python中生成随机数的方式,可以利用内置的 random 模块进行生成。而且每次文件运行时输出的随机数都是不同的,同一文件内若多次调用随机数函数也都是不同的。 如下就是生成并打印1~100以内的整数的Python程序代码: import random randomNum = random.randint(1,100) print(randomNum) 对于C语言中,如果要实现随机数,会稍显复杂。 首先,需要 rand() 函数实现伪随机数,为什么说是“伪”呢?是因为每次运行文件内的多个 rand() 函数时候之后的几次都和第一次是一个值。 说明这样的“随机”有可能是经过某种算法得到的,而不是真的随机。调查后,事实上 rand() 函数每次都是对一个叫“种子”的基准值运算后生成的。那么我们就会想“种子”是如何得出的?根据什么来算出的? 根据此,可以想到用 srand() 函数来初始化随机数的生成器,通过 srand() 函数的 seed 参数来设置需要 rand() 函数生成随机数的“种子”。也就是说 srand() 的“种子”如果是随机的, rand() 就能生成随机数,但是生成随机数的前提是还需要一个随机的值,这样的矛盾又该如何解决呢?我们需要找到一个时刻在变的值来依据此得出这个需要的随机值。 那么我们可以使用程序运行的时间来作为“种子”,那么我们可以再引入 time() 函数。 time() 函数返回的类型是 time_t 类型(本质上还是32位或64位的整型)的时间戳值。时间戳是1970年1月1日0时0分0秒到程序运行时候的时间差,单位是秒。time() 函数中的参数 timer 是 NULL...