下面的代码是 获得一定范围内不重复的随机数. 首先调用srand函数至于随机的因子. 然后调用rand()函数对范围取模. 得到的模跟以前的数做对比,如果没有相同的就插入到数组中. #include<stdio.h> #include<stdlib.h> #include<time.h> void main() { int iMax = 10000; int x; int a[10000];//声明数组。 srand(unsigned(time(NULL))); for(int i=0;i<iMax;i++) {//取6个不重复的整数放到数组num中。 leap:x=rand()%iMax; //此处我将其改为0-9范围了。你可以改大。 for(int j=0;j<i;j++)//用j<i来作循环条件,因为当i=0时,就可直接插入了;且此时下一个值还未插入。比如:i=4时,实际上,num中只有num[0].num[1]num[2]num[3]四个元素。 { if(a[j]==x)// 此数组没声明。 { //i=0; //此处不能改写i的值。如果你改了,就不会循环与数组中的数比较了。当然就可能出现重复的情况了。 goto leap; }//if }//for a[i]=x;// 如果不等就插进数组num相应位置中。 // printf("%d ",num[i]); //此处打印时,要空一格,否则数据都连在一起了。 }//for for (i=0; i<iMax; i++) { for (int j=i+1;j<iMax; j++) { if (a[i]> a[j]) { int t= a[i]; a[i]= a[j]; a[j] = t; } } } // for(i=0;i<iMax;i++) // printf("%d ",a[i]); printf("/n"); }//main