C语言生成不重复伪随机数的代码示例
5星 · 超过95%的资源 55 浏览量
更新于2024-09-01
收藏 61KB PDF 举报
"C语言生成随机数的示例代码分享,包含一个不重复产生随机数的程序,使用了srand()和rand()函数,以及逻辑判断确保随机数的唯一性。"
在C语言中,生成随机数是编程时常见的需求,特别是在模拟、游戏或测试等领域。`rand()`函数是C标准库中的一个功能,它用于生成一个伪随机数。这里的“伪随机”意味着生成的序列看起来是随机的,但实际上遵循一定的可预测模式。`rand()`函数返回的随机数范围通常是从0到`RAND_MAX`之间的一个整数,具体的`RAND_MAX`值依赖于实现。
为了使`rand()`生成的随机数序列每次运行程序时都不相同,我们可以使用`srand()`函数来设置随机数生成器的种子。在上面的示例中,`srand((unsigned)time(NULL))`使用当前时间作为种子,因为时间通常是不可预测的,这样可以确保每次程序运行时得到不同的随机数序列。
代码的核心部分在于生成不重复的随机数。首先,使用`rand()%41+1`生成1到40之间的随机数,避免生成8和36(可能有特殊用途)。然后通过一个`do-while`循环检查生成的数字是否已经出现过或者等于8或36,如果满足这些条件,就继续生成新的随机数。`flag`变量用于标记是否找到了一个新的、可用的随机数,如果找到,则将其存储在数组`a`中。
在主循环中,用户可以输入一个最大值(1到39之间),程序会生成这个数量的不同随机数并显示出来。如果用户输入的不是'q',程序会提示重新输入,否则程序结束。使用`goto`语句在这里是为了简化流程控制,虽然在某些情况下`goto`语句被认为是不良编程习惯,但在这种小型示例中,它的使用是可以接受的。
总结来说,这个C语言示例提供了生成不重复随机数的方法,使用了标准库中的`rand()`和`srand()`函数,并结合逻辑判断实现了特定需求。理解这段代码有助于掌握C语言中如何生成和处理随机数,以及如何实现特定条件下的逻辑控制。
2014-08-06 上传
2022-05-20 上传
2009-10-13 上传
2023-09-25 上传
2023-06-08 上传
2023-05-15 上传
2024-11-20 上传
2023-05-26 上传
2023-05-23 上传
weixin_38502929
- 粉丝: 7
- 资源: 959
最新资源
- react_station:一个未来的React项目的工作空间
- awesome-tgcalls:精选的电报电话项目清单
- genesys:Genesys是与Visual Studio Code一起使用的原型工具包。 它使设计人员和UI开发人员可以快速创建低保真至高保真原型,甚至是可用于生产的UI。 Genesys为大多数主要设计系统提供支持
- 杭州地区天气预报易语言源码例程.zip易语言项目例子源码下载
- DSI-Modificacion-Practica7
- 生活服务网站模版
- 青春海洋全站程序
- Web
- recipes-gatsby
- 汉字转换拼音.zip易语言项目例子源码下载
- Keystroke-开源
- woocommerce-export-customer-email:WooCommerce 商店从管理面板导出客户账单电子邮件的基本功能
- MacroTracker
- 岳家楼住宅小区8号楼钢筋工程施工方案.zip
- information-management-system
- 实用的IP转向程序