#include
bool flag = false;//代表是否数组中已存在相同的数了,true是“是” false是“否”for(i=0;i<7;)
{ flag = false;int tmp = rand()%36; for(int j=0;j b[i]=rand()%36;
}思路只是这样,如果随机数是不同的就给数组赋值,如相同i就不自增,重新生成后,再比较,反复进行。
给你提供个思路吧:没产生一个数,循环验证下是否与之前产生的数一致,如一致就重新生成
#include
#include
#include
void main()
{
int i,pd[36],a[7],x;
srand(time(0));
for(i=0;i<36;i++)
pd[i]=0;
for(i=0;i<7;i++)
{
while(pd[x=rand()%36]==1);
printf("%d ",x);
}
}
void main()
{
int b[7],q,p,mod,m,sign=0;
for(i=0;i<7;)
{
m=rand()%36;
q=0,p=i-1;
while(q<=p)
{
mod=(q+p)/2;
if(b[mod]>m)
q=mod+1;
else if(b[mod]
else
{
sign=1;
break;
}
}
if(!sign)
{
b[i++]=m;
}
else
sign=0;
}
}