郑州汇众教育学费:c语言里面用rand()函数产生无重复的0-15的随机数

来源:百度文库 编辑:神马品牌网 时间:2024/04/28 05:21:45
哥哥门给段具体的代码吧.谢谢啦~~
一共要产生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);
};
}
}

键盘输入不同种子,得不同的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);
};
}
}

#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()呢????