在C语言中,可以使用rand()函数生成随机数,但是要生成不重复的随机数,可以采用以下方法: 使用数组存储已经生成的随机数,每次生成新的随机数时,先检查数组中是否已经存在该随机数,如果存在则重新生成,直到生成一个不重复的随机数
在C语言中,可以使用rand()函数生成随机数,但是要生成不重复的随机数,可以采用以下方法:
- 使用数组存储已经生成的随机数,每次生成新的随机数时,先检查数组中是否已经存在该随机数,如果存在则重新生成,直到生成一个不重复的随机数。
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
intmain(){
intnums[10];//存储生成的随机数
intindex=0;
srand((unsigned)time(NULL));//初始化随机数种子
while(index<10){
intnew_num=rand()%100;//生成0~99的随机数
//检查数组中是否已经存在该随机数
inti;
intis_duplicate=0;
for(i=0;i<index;i++){
if(nums[i]==new_num){
is_duplicate=1;
break;
}
}
if(!is_duplicate){
nums[index]=new_num;
index++;
}
}
//输出生成的不重复随机数
for(inti=0;i<10;i++){
printf("%d",nums[i]);
}
return0;
}
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
voidshuffleArray(intarr[],intn){
srand((unsigned)time(NULL));
for(inti=n-1;i>0;i--){
intj=rand()%(i+1);
inttemp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
intmain(){
intnums[10];//存储生成的随机数
for(inti=0;i<10;i++){
nums[i]=i;
}
shuffleArray(nums,10);
//输出生成的不重复随机数
for(inti=0;i<10;i++){
printf("%d",nums[i]);
}
return0;
}
以上是两种生成不重复的随机数的方法,可以根据实际需求选择合适的方法。
版权声明
本文仅代表作者观点,不代表博信信息网立场。