函数:生成1-n的随机数组,

方法很笨,不过可行;数组

 1 #include <stdio.h>
 2 /** 功能:获取一个1-n的随机数数组,这些随机数都互不相同
 3 **  入参:n-表示最大随机数; *randArray -用于储存生成的这些随机数;
 4 **  说明:该方法效率很低;采用生成的随机数跟前面已经生成的随机数对比;
 5 */
 6 void getRandArray(int n,int * randArray){
 7     srand((int)time(0));
 8     int i;
 9     for(i=0;i<n;i++)
10     {
11         randArray[i]=rand()%n;
12         int k=0;
13         for(k=0;k<i;)
14         {
15             int cycleFlag=0;    //若是有生成的随机数与前面的相同,则将循环标志置为1;
16             while(randArray[i]==randArray[k])
17             {   randArray[i]=rand()%n;
18                 cycleFlag=1;
19                 break;
20             }
21             if(cycleFlag==0)
22                 k++;
23             else
24                 k=0;
25         }
26     }
27     for(i=0;i<n;i++){
28         randArray[i]=randArray[i]+1;
29     }
30 }
31 
32 int main(){
33     int testArray[20];
34     getRandArray(sizeof(testArray)/sizeof(int),testArray);
35 }
相关文章
相关标签/搜索