C语言--生成1-20内的唯一随机数
发布时间
阅读量:
阅读量
生成1~20内无重复的随机数
思路:
1、创建一个随机数值,并将其逐个存储至数组中
2、将当前生成的随机数值与之前已存储的数值进行比对
3、若发现重复,则判定该随机数值无效,此时需将数组的下标位置回退一步,并重新执行第1、2项操作;若未发现重复,则判定该随机数值有效,继续执行第1、2项操作
4、持续进行上述过程,直至数组中所有位置均被填充完毕。
#include<stdio.h>
#define n 20
int main(){
int i,j,flag,x,a[n]={0};//数组初始化为0
x = rand()% 20 + 1;//生成 1~20 之间的随机数
a[0] = x;
for(i=1; i<n; i++){//生成数组前n个随机数
x = rand()%20+1;
a[i] = x;
for(j=0; j<i; j++){//筛选有效随机数
if(a[i] == a[j]){//随机数重复,则随机数无效
i-=1;//随机数无效,数组下标减1,重新生成当前数组随机数
break;
}
}
全部评论 (0)
还没有任何评论哟~
