c 语言 随机数选取6个数 一定范围内

种子来源 定时器
/*
***************** 自动筛选种子 dat 目标种子 ************/ #define max 7 //随机生成最大的数为7 #define min 1 //随机生成最小的数为1 //查找相同的数据 u8 find_same_num(u8 *dat,u8 len,u8 dat_aim) { for(u8 i=0;i<(len+1);i++) { if(dat_aim==dat[i]) { return 1; } } return 0; } // void get_random(u8 *dat) { //种子 u8 new_seed=0; srand(end_device1.seed); u8 num = rand() % (max - min) + min; // “%”为模运算 if(num>=6) { num=6; } dat[0]=num; u8 gotos=0; for(u8 i=1;i<5;i++) { num = rand() % (max - min) + min; // “%”为模运算 while(find_same_num(dat,i,num)) { num = rand() % (max - min) + min; // “%”为模运算 if(num>=6) { num=6; } new_seed++; if(new_seed>=50) { new_seed=0;//运算超过100次 自动赋值 说明该随机种子无法产生需要的数值 for(u8 k=0;k<6;k++) { if(find_same_num(dat,i,k+1)==0) { num = k+1;// gotos=1; break; } } if(gotos==1) { gotos=0; break; } } } dat[i]=num; } //最后一次自动生成 for(u8 j=0;j<6;j++) { if(find_same_num(dat,6,j+1)==0) { dat[5] = j+1;// break; } } }

 

转载于:https://www.cnblogs.com/polar-lights/p/9658505.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值