资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

c语言随机函数但不重复 c语言随机函数但不重复怎么办

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

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

10多年的珲春网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。网络营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整珲春建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“珲春网站设计”,“珲春网站推广”以来,每个客户项目都认真落实执行。

比如说随机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语言如何产生随机不重复的数,我不重复不知道怎么写。怎样不重复

#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语言随机函数但不重复怎么办
本文来源:http://cdkjz.cn/article/dohosgs.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

业务热线:400-028-6601 / 大客户专线   成都:13518219792   座机:028-86922220