函数:生成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 }

 

转载于:https://www.cnblogs.com/leaver/p/6706390.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值