C语言生成不重复的随机数数组

C语言生成不重复的随机数数组

//一个随机数数组生成算法,生成0-n不重复的随机数数组
//本例子使用的是0-99的范围,参数可改
//如果是在最后面的数组,使用完,丢弃
//如果是前面的数则用后面不可取到的数替换

#include 
#include
#include
int main()
{
    int a[100],b[100],i,j;

    for(i=0;i<100;i++)
        b[i]=i;

    srand(time(NULL));
    for(i=0;i<100;i++)
    {
        j=(int) ((float) ((100-i)*rand())/(RAND_MAX+1.0));
        a[i]=b[j];
        b[j]=b[100-1-i];
    }

    for(i=0;i<100;i++)
        printf("a[%d]=%d\n",i,a[i]);
    return 0;
}

你可能感兴趣的:(C语言)