当前位置:首页 » 编程语言 » c语言取随机数不重复
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言取随机数不重复

发布时间: 2023-03-12 12:58:54

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

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
main()
{inta[10],i,j,k;
srand(time(NULL));
for(i=0;i<10;i++){//采集10个随机数
a[i]=rand()%90+10;//随机数赋值
k=0;//重复个数清零
for(j=0;j<i;j++)//计算重复的个数
if(a[i]==a[j])k++;
if(k!=0)i--;//重复个数不为0,就是有重复的
}//重新产生这个随机数
for(i=0;i<10;i++)
printf("%4d",a[i]);
}

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

望采纳。。。。。。

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

c语言生成1 - 100的不重复随机数?根据你的要求我已经将代码实现如下
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int main(){
int a[10];
srand((unsigned)time(NULL));
for(int i=0;i<10;i++){
A: a[i]=rand()%99+1;
for(int j=0;j<i;j++){
a[i]=rand()%99+1;
if(a[i]==a[j])goto A;
else break;
}
}
for(int i=0;i<10;i++)
printf("%d ",a[i]);
}

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

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

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

例:

intarray[8];

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

intk=0;

srand(100);

while(k<8){

intq=rand()%8+1;

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

continue;

}

array[k]=q;

arrayIndex[q-1]=1;

k++;

}

(3)c语言取随机数不重复扩展阅读

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

#include<stdio.h>

#include<stdlib.h>

#include<time.h>

voidmain()

{

inta[20];

inti,j;

srand((int)time(0));

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

for(i=1;i<20;i++)

{

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

for(j=0;j<i;j++)

{

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

{

i--;

}

}

}

for(i=0;i<20;i++)

{

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

}

}

4. C语言如何用rand函数产生4个不重复的随机数啊

可以将生成的随机数放入数组中,每次遍历数组,有相同的重新生成随机数。知道生成4个即退出循环。

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

intmain()
{
intnum[4],cnt=0,n;
srand(clock());//设置随机数种子
while(cnt<4)
{
n=rand()%4;//生成4以内随机数,这样更利于测试
for(inti=0;i<cnt;i++)
if(num[i]==n)//遍历数组,有相同的重新生成随机数
continue;
num[cnt++]=n;
}
for(inti=0;i<cnt;i++)//打印随机数数组
printf("%d",num[i]);
return0;
}

5. C语言结构编程中怎样能产生不重复的随机数

//让数不重复,而且每个数都有不好弄,但是如果是生成选手比赛顺序,我这种做法就可以了。你把选手的编号放在一个数组里面,然后从数组的第一个开始,把生成的随即数当成要交换的下标,随即交换后就打乱顺序了。
虽然产生的随机数可能一样,但是这样打乱顺序并不会把选手编号改变了。
例如,
int
tmp,num;
a[10]={1,2,3,4,5,6,7,8,9,10};
srand(time(NULL));
for(int
i=0;i<10;i++)
{
num=rand()%10;
tmp=a[i];
a[i]=a[num];
a[num]=tmp;
}