重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
用一个数组装随机数,一个数组表示已经记录过的随机数;
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]);
}
}
#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很明显可以看见程序是符合要求的
#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产生不了不重复的随机数,所以方法就是把产生的重复的去掉。我这里举个例子,按照这个思路,插入到你的程序里就行了。
望采纳。。。。。。