C语言产生互不相同的10个随机数数

2024-11-15 11:59:45
推荐回答(5个)
回答1:

当然会有重复。

你的随机数是1-10,所以111%10等于1,11%10也等于1呀
如果你算0-65535的随机数,那就重复的几率小了,但也还是会重复的

回答2:

j=0; 之后要做一个j++变成1了,所以改成j=-1;

回答3:

楼上说的没错,应该能发现:出现重复数字时,都是与第一个数字重复
也就是说没有与a[0]判断

回答4:

楼上基本正确,主要错误是j=0,未考虑到j++
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
void main()
{
int a[10],i,j;
srand((unsigned)time(NULL));
for(i=0;i<10;i++)
{
a[i]=rand()%10;
for(j=0;j {
if(a[i]==a[j]){
a[i]=rand()%10;
j=-1;
}
}
}
printf("the num is:");
for(i=0;i<10;i++)
printf("\n%d\n",a[i]);
}

回答5:

#include "stdio.h"
#include "stdlib.h"

main()
{
int a[10],i,j;
srand(time(0));
for(i=0;i<10;i++)
{
a[i]=rand()%10;
for(j=0;j {
if(a[i]==a[j])
{
a[i]=rand()%10;
j=-1;/*for下一次循环之前,自动执行j++*/
}
}
}
printf("the num is:");
for(i=0;i<10;i++)
printf("\n%d",a[i]);
}