当前位置:首页 > 代码 > 正文

随机数不重复c代码(c语言产生不重复的随机数)

admin 发布:2022-12-19 22:45 201


本篇文章给大家谈谈随机数不重复c代码,以及c语言产生不重复的随机数对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

C语言如何产生不重复的随机数

用一个数组装随机数,一个数组表示已经记录过的随机数;

比如说随机0-8,生成一个随机8位数组且数组内各项不重复;

例:

intarray[8];

intarrayIndex[8]={0,0,0,0,0,0,0,0};

intk=0;

srand(100);

while(k8){

intq=rand()%8+1;

if(arrayIndex[q-1]==1){

continue;

}

array[k]=q;

arrayIndex[q-1]=1;

k++;

}

扩展资料

C语言随机输出1~20不重复的随机数

#includestdio.h

#includestdlib.h

#includetime.h

voidmain()

{

inta[20];

inti,j;

srand((int)time(0));

a[0]=rand()%20+1;

for(i=1;i20;i++)

{

a[i]=rand()%20+1;

for(j=0;ji;j++)

{

if(a[i]==a[j])

{

i--;

}

}

}

for(i=0;i20;i++)

{

printf("%3dn",a[i]);

}

}

C语言程序产生不重复随机数

#includeiostream

#includetime.h

#includestdlib.h

using namespace std;

int main()

{

int i,j;

int n[10]; //要产生10个随机数

int n1=100; //100个随机数

int n2=51; //从50开始

// n[0]=rand()%n1+n2;//产生50-150的随机数

srand((unsigned)time(NULL));

for(i=0;i10;i++)

{

n[i]=rand()%n1+n2;

while(1) //判断是否重复

{

for(j=0;ji;j++)

{

if(n[i]==n[j])

{

n[i]=rand()%n1+n2;

j=0;

break;

}

}

if(j==i)//新随机数与前面几个随机数都不重复

break;

}

printf("%d\n",n[i]);//产生从50-150的随机数

}

return 0;

}

//你发的程序少太多东西也不清楚你要表达什么意思,唯一理解的是你提出的要求,我编了一个程序可以产生不重复随机数但是不知道有没有系统函数可以这样做,把n1改成10很明显可以看见程序是符合要求的

c语言生成1 - 100的不重复随机数

#includestdio.h

#includetime.h

#includestdlib.h

int Rand(int X,int Y)//生成随机数

{

int temp;

if(XY)

{

temp=X;

X=Y;

Y=temp;

}

return rand()%(Y-X+1)+X; 

}

void main()

{

int arr[100];

int i;

int r;

int temp;

srand((unsigned)time(NULL));

for(i=0;i100;i++) arr[i]=i+1;//将数组赋值1~100

for(i=0;i100;i++)

{

r=Rand(0,99);

temp=arr[i];

arr[i]=arr[r];

arr[r]=temp;

}//数组乱序

for(i=1;i=100;i++)

{

printf("%3d ",arr[i-1]);

if(i%10==0)

printf("\n");

}

}

C语言产生不重复的随机数

#includeiostream.h

#includecstdlib

#includectime

void main()

{

int i,j,a[10];

srand(time(0));

for(i=0;i10;i++)

{

a[i]=rand()%10;

int flag=1;

while(flag==1)// 你的这里可能还会产生重复的数,这里确保产生的数不再重复,只要有重复的就在随机新的数。

{

for(j=0;ji;j++)

if(a[i]==a[j])

break;

if(ji)

a[i]=rand()%10;

if(j==i)

flag=0;

};

}

for(i=0;i10;i++)

couta[i]endl;

}

这样就可以了,参考下哈,满意请采纳。

c语言如何产生随机不重复的数,我不重复不知道怎么写。怎样不重复

#includestdio.h

#includestdlib.h

#includetime.h

main()

{   int a[10],i,j,k;

    srand(time(NULL));

    for(i=0;i10;i++){//采集10个随机数 

        a[i]=rand()%90+10;//随机数赋值 

        k=0;//重复个数清零 

        for(j=0;ji;j++)//计算重复的个数 

           if(a[i]==a[j]) k++;

if(k!=0) i--;//重复个数不为0,就是有重复的    

}                //重新产生这个随机数 

for(i=0;i10;i++)

    printf("%4d",a[i]);

}

如图所示,rand产生不了不重复的随机数,所以方法就是把产生的重复的去掉。我这里举个例子,按照这个思路,插入到你的程序里就行了。

望采纳。。。。。。

随机数不重复c代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言产生不重复的随机数、随机数不重复c代码的信息别忘了在本站进行查找喔。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/28346.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载