c语言里面用rand()函数产生无重复的0-15的随机数

哥哥门给段具体的代码吧.谢谢啦~~
一共要产生10个无重复0-15的随机数~‘

键盘输入不同种子,得不同的0-15无重复随机数

#include <stdio.h>
#include <stdlib.h>
main()
{
int seed=1000; // 种子
int i;
int m[16] ;
int nn=0;
double r;
printf("enter seed please\n");
scanf("%d",&seed);

srand(seed); // 初始化随机数生成器

for (i=0;i<=15;i++) m[i] = 0;

while (nn < 10 ){
// r 是双精度浮点随机数,范围0.0到1.0
r = ( (double)rand() / ((double)(RAND_MAX)+(double)(1)) );
i =(int) ( r * 15.0);
if (m[i] == 0) {
m[i] = 1; nn = nn + 1;
printf("%d ",i);
};
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-01-26
键盘输入不同数字,得不同的0-15无重复随机数

#include <stdio.h>
#include <stdlib.h>
main()
{
int seed=1000; // 种子
int i;
int m[16] ;
int nn=0;
double r;
printf("enter seed please\n");
scanf("%d",&seed);

srand(seed); // 初始化随机数生成器

for (i=0;i<=15;i++) m[i] = 0;

while (nn < 10 ){
// r 是双精度浮点随机数,范围0.0到1.0
r = ( (double)rand() / ((double)(RAND_MAX)+(double)(1)) );
i =(int) ( r * 15.0);
if (m[i] == 0) {
m[i] = 1; nn = nn + 1;
printf("%d ",i);
};
}
}
第2个回答  2020-03-05
键盘输入不同种子,得不同的0-15无重复随机数
#include<stdio.h>
#include<stdlib.h>
main()
{
intseed=1000;//种子
inti;
intm[16];
intnn=0;
doubler;
printf("enterseedplease\n");
scanf("%d",&seed);
srand(seed);//初始化随机数生成器
for(i=0;i<=15;i++)m[i]=0;
while(nn<10){
//r是双精度浮点随机数,范围0.0到1.0
r=((double)rand()/((double)(RAND_MAX)+(double)(1)));
i=(int)(r*15.0);
if(m[i]==0){
m[i]=1;nn=nn+1;
printf("%d",i);
};
}
}
第3个回答  2006-04-12
#include <stdio.h>
#include <stdlib.h>

void main()
{
int i,a[15],k;
randomize();// 初始化随机数生成器
for(k=0;k<=14;k++)
a[k]=k+1;
for(k=0;k<10;k++)
{
i=random(14);
while(a[i]==-1) i=random(14);
printf("%d ",a[i]);
a[i]=-1;
}
}

感觉这样比较简单...为什么要用rand()呢????
相似回答