如何用C语言生成随机数

利用C语言生成随机数主要用到srand和rand两个函数

我们先写出代码然后再分析过程

#include<stdio.h>
#include<time.h>
int main()
{
    int i;
    int a[10];
    srand(time(0));
    for (i=0;i<10;i++)
    {
        a[i]=rand()%100;
    }
    for (i=0;i<10;i++)
    {
        printf("%d\n",a[i]);
    }
    printf("\r");
    return 0;
}

srand(time(0))语句的功能便是生成一个随机的种子

time(0)是当前时间,因为时间是变化的,所以生成的种子也就可以保证不同。

srand为void类型,无返回值

a[i]=rand()%100作用是将生成的随机数范围化,因为我对100取余,所有生成的随机数范围会再0-100之间,其他同理如果想要再1000以内可以对1000取余操作。

如果直接用rand()函数的化虽然生成的数是随机的,但是第二次运行的时候随机的数会没有变化,无法达到多次的随机。而能让随机种子发生变化的便是利用时间。

但是这里有一个小小的BUG,如果你在1秒内执行多次,那么生成的随机数也是相同的,因为随机种子时间戳是按照秒来计算的。不过这个一般不影响正常的使用,可以加一个1秒的延时即可解决。

两次的执行结果都为随机数。

说点什么
头像
支持Markdown语法
好耶,沙发还空着ヾ(≧▽≦*)o
Loading...