#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int fun(int a,int b,int c,int d)//判断所得的四个数是否相等,全都不等为正确
{
if((a!=b)&&(a!=c)&&(a!=c)&&(a!=d))
if((b!=c)&&(b!=d))
if(c!=d)
return 1;
return 0;
}
void main()
{
int a,b,c,d;
srand((unsigned)time(0));
a=1+rand()%1000;
b=1+rand()%1000;
c=1+rand()%1000;
d=1+rand()%1000;
if(fun(a,b,c,d))
printf("a=%d\nb=%d\nc=%d\nd=%d\n",a,b,c,d);
}
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
int a[4],b;
srand(time(NULL));
b=rand()%1000+1;
int k=1;
a[0]=b;
for(int i=0;;i++)
{
b=rand()%1000+1;
for(int j=0;j<k;j++)
{
if(a[j]==b) break;
else if(j==k-1)
{
a[k]=b;
k++;
}
}
if(k==4)
break;
}
for(i=0;i<k;i++)
printf("%d ",a[i]);
printf("\n");
}
追问我看了下代码,意思是选出后再判定是不是相等,如果不相等再运行一次对吧,有没有什么算法一次就能成功的? 我貌似错了,谢谢!你这个可行!
追答恩恩 你看懂了这个代码 是这个意思
你是不是说一次产生4个随机数而且互不相同呢?
但这个我目前还不会 不好意思
其实我觉得你后面加了几个数是没有用的,比如a选出的是300,b选出的是50,那么ab就相等了
追答a会选出300么?我取余了,a只能是0-250之间的数字
追问好吧,我水了,如果设置成四段的话,不能保证随机性了吧,这样四个数就会平均发分布在四个区间内的
追答你再随机顺序输出abcd不就行了。。。