c语言,产生4个随机数,找不到哪里出问题了

2024-11-26 10:33:36
推荐回答(5个)
回答1:

如果只是产生四个随机数的话,把if到i--的语句全删掉就OK.
看你的程序应该是要产生四个不同的随机数
改这一句if(a[j]=a[i])为if(a[j]==a[i]),=是赋值,当a[i]不为0是,会一直循环,因为if语句一直为真,直到a[i]为零,所以为输出0000.用==去判断就好.if(i>0)一句别删.

回答2:

问题好像是处在if (a[j]=a[i]) ,是不是应该是if (a[j]==a[i])呢?
你试一下改后的程序:
# include
# include
# include
int main()
{
int a[4],i,j;
srand(time(NULL));
for(i=0;i<4;i++)
{
a[i]=rand()%10;
if (i>0)
for (j=0;jif (a[j]==a[i])
i--;
}
printf("%d %d %d %d",a[0],a[1],a[2],a[3]);
getchar();
return 0;
}

回答3:

C语言的随机数和当时的时间相关的! 你不信自己输一个循环输出随机数的函数!会发现他至少1-2秒后产生的随机数才会变化! 我也不知道该怎么办!我品已经转行不弄C了!弄C++和VB了!~~

回答4:

# include
# include
# include
int main()
{
int a[4],i,j;
srand((unsigned)time(NULL));
for(i=0;i<4;i++)
{
a[i]=rand()%10;
for (j=0;jif (a[j]==a[i]) {
i--;
break;
}
}
}
printf("%d %d %d %d",a[0],a[1],a[2],a[3]);
getchar();
return 0;
}

回答5:

好混乱
if (i>0)一定成立,为啥要加这句