C语言 怎么产生没有重复的一组随机数 随机数是有几率产生重复的数,你可以把新产生的跟前面的每一个比较如果有相等的就重新产生。
C语言中生成一组各不相同的不重复的随机数 #includeincludeincludeint main(){int*a,n,i,j;scanf(\"%d\",&n);a=(int*)calloc(n,sizeof(int));srand(time(NULL));for(i=0;i;i+){loop:a[i]=rand()%n+1;for(j=0;j;j+)if(a[i]=a[j])goto loop;}for(i=0;i;i+)printf(\"%d\",a[i]);printf(\"\\n\");free(a);return 0;}
c语言生成1 - 100的不重复随机数 #includeincludeincludeint Rand(int X,int Y)/生成随机数{int temp;if(X>;Y){temp=X;X=Y;Y=temp;}return rand()%(Y-X+1)+X;}void main(){int arr[100];int i;int r;int temp;srand((unsigned)time(NULL));for(i=0;i;i+)arr[i]=i+1;将数组赋值1~100for(i=0;i;i+){r=Rand(0,99);temp=arr[i];arr[i]=arr[r];arr[r]=temp;}/数组乱序for(i=1;i;i+){printf(\"%3d\",arr[i-1]);if(i%10=0)printf(\"\\n\");}}
C语言:如何产生不重复的随机数字? -VC6测试通过-能产生不相同的数-includeincludeincludevoid main(){int x;int num[10];声明数组。e79fa5e98193e59b9ee7ad9431333236356539srand(unsigned(time(NULL)));for(int i=0;i;i+){/取6个不重复的整数放到数组num中。leap:x=rand()%10;此处我将其改为0-9范围了。你可以改大。for(int j=0;j;j+)/用j来作循环条件,因为当i=0时,就可直接插入了;且此时下一个值还未插入。比如:i=4时,实际上,num中只有num[0].num[1]num[2]num[3]四个元素。{if(num[j]=x)/此数组没声明。{i=0;此处不能改写i的值。如果你改了,就不会循环与数组中的数比较了。当然就可能出现重复的情况了。goto leap;}/if}/fornum[i]=x;如果不等就插进数组num相应位置中。printf(\"%d\",num[i]);此处打印时,要空一格,否则数据都连在一起了。}/forprintf(\"\\n\");}/main