关于随机数的使用

这篇博客介绍了C语言中的随机数生成,包括srand()和rand()函数的使用,以及如何确保生成更随机的序列。文中还给出了两个实践例子:生成10位数的QQ号和一个猜数小游戏的C语言实现。

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

C语言随机函数

C语言随机函数

库函数中系统提供了两个函数用于产生随机数:srand()和rand()

  • rand()函数可以生成一个[0,RAND_MAX]间的随机整数;(ISO IEC 9899 2011 (C11)标准中未规定 RAND_MAX 的具体数值。但该标准规定了RAND_MAX 的值应至少为32767。编程的时候,不应该对 RAND_MAX 的具体数值做任何假设。)
  • srand()可以被认为是为rand()的“伪随机数”的结果指定一个固定的序列,若未引用srand()函数,则程序默认srand()括号中的值为1;如果引用的话,srand()括号中不能为空;
  • 为了确保生成的随机数为尽可能符合概率上的随机,需要调用一个函数time()(是指返回自 Unix 纪元(January 1 1970 00:00:00 GMT)起的当前时间的秒数的函数,主要用来获取当前的系统时间,返回的结果是一个time_t类型),这个函数包含在头文件time.h里,在生成随机数的调用下需强制类型转换为(unsigned)time(),后面一个括号中必须填入(unsigned)time(NULL)或
    (unsigned)time(0)。
  • n=rand()%(Y-X+1)+X; /n为X~Y之间的随机数/

练习题

1、生成一个10位数的QQ号

C实现程序:

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

//10的m次幂
int f10m(int m)
{
   
   
    if(m<0)
    return -1;

    int mul=1;
    int i;
    for(i=1;i<m+1;i++)
    {
   
   
        mul*=10;
    }
    return mul;
}
int myrand()
{
   
   
    int a[10];
    srand(time(NULL));
    int randnum=0;
    int i;
 
    for(i=0;i
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值