产生不重复随机数
作者:
kkkk小天使 | 来源:发表于
2020-05-21 17:54 被阅读0次
代码:
#include<stdio.h>
#include<stdlib.h>
#include<time.h >
//产生四个(不同)随机数 保存到数组 输出
int main(){
int array[4] = {};
srand(time(NULL));
//生成数组
//产生随机数的同时比较是否重复
//重复重新生成,不重复保存
//每次i的值正好可以用来判断已经存在了几个
for(int i = 0; i < 4; i++){
int temp = rand() % 4;
if(i == 0){//第一个直接保存
array[i] = temp;
} else{
//判断前面是否已经存在
int j = 0;
for(; j < i; j++){
//比较j对应的值和temp是否相同
if(array[j] == temp){
//重复了
break;
}
}
//判断是怎么出来的
if(j == i){
//将i前面的比较一遍都没重复
//保存temp值
array[i] = temp;
} else{
//重复了
//重新回到当前这一次
i--;
}
}
}
//输出
//数组中元素不能同时访问
for(int i = 0; i < 4; i++){
printf("%d ",array[i]);
}
return 0;
}
注意点:
1、定义数组之后需要初始化
2、不重复需要与前面的数字比较,数字相同时重新生成
3、在i++的循环中,为了避免跳过该次循环,i--
本文标题:产生不重复随机数
本文链接:https://www.haomeiwen.com/subject/ohetahtx.html
网友评论