c语言,找问题

来源:百度知道 编辑:UC知道 时间:2024/06/25 20:07:26
我想生成4个不同的随机数,但是不行啊
我的思路是
1 产生一个随机数
2 比较它和之前的随机数是否相同,如果相同,就重新产生
但是为什么每次产生的都是4个零?

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

谢谢!

【if (a[j]=a[i]) i--;】
这句里的if后应该是s[j]==a[i],要不就是把a[i]的值赋给a[j],然后判断a[j]是不是真咯。

对敲响键盘:的回答
break之后就结束循环了.你有可能得不到四个随机数;

if (a[j]=a[i]) i--;
改成if (a[j]==a[i]) i--;

if (a[j]==a[i]) {i--;break;}
改成这一句,一切在不言之中