【发布时间】:2011-02-21 09:44:42
【问题描述】:
我尝试在 C 中生成 10 个唯一的随机数。我有一个包含 10 个数字的数组 numout[],但这会在一段时间后出现“分段错误”。
代码是:
int i,j,numout[10],randnum;
void main()
{
srand(time(NULL));
for(i=0;i<10;i++)
{
numout[i]=generate();
printf("%d",numout[i]);
fflush(stdout);
sleep(1);
printf("\b");
}
}
int generate()
{
randnum=1+(int)(rand()*mul_val/(RAND_MAX+1.0));
for(j=0;j<i;j++)
{
if(randnum==0 || randnum==numout[j])
{
randnum=generate();
}
}
return(randnum);
}
【问题讨论】:
-
我们看不到您如何声明
numout。这段代码甚至无法编译。这些数字在什么意义上是独一无二的? -
numout[]的声明在哪里,“i”和“mul_val”是什么?
-
-1 ... 而
i是什么,由于代码不完整,无法分辨出什么问题 -
我用完整的代码编辑了。
标签: c