正态分布 c语言

场景:c语言产生正态分布有关问题求教

c语言产生正态分布问题求教
我想在想产生N个服从正态分布的随机数,但是每次产生这些数都是一样的,不知问题出在哪里,请各位帮助。

代码如下:
#include   "*.h "   //包含一些头文件

float   gaussian_random(void);
float   uniform_random(void);


void   main()
{
          for(int   N   =   0;   N   <   10000;   N++)
        {
                      number[N]   =   gaussian_random();   //这些随机数我存到硬盘里,然后查看的

      }
}


float   gaussian_random(void)
{
    static   int   next_gaussian   =   0;
    static   float   saved_gaussian_value;

    float   fac,   rsq,   v1,   v2;

    if   (next_gaussian   ==   0)   {
        do   {
            v1   =   2.0*uniform_random()-1.0;
            v2   =   2.0*uniform_random()-1.0;
            rsq   =   v1*v1+v2*v2;
        }   while   (rsq   > =   1.0   ||   rsq   ==   0.0);
        fac   =   sqrt(-2.0*log(rsq)/rsq);
        saved_gaussian_value=v1*fac;
        next_gaussian=1;
        return   v2*fac;
    }   else   {
        next_gaussian=0;
        return   saved_gaussian_value;
    }
}

float   uniform_random(void)
{

    return   (float)   rand()   /   (float)   RAND_MAX;
}


现在问题是:我运行同样的程序,得到的随机数组和上次运行保存的结果都是一样。我如何才能在没次运行时,都能得到不一样的随机数组呢。

------解决方案--------------------
在main里加一句
srand(time(NULL));

因为随机数其实是伪随机的,都是由一定的算法算出来的,所以用时间(唯一性)设置种子的话可以保证每次产生的随机数更像随机数