我被赋予了创建非重复数字生成器的任务,该生成器生成7个数字。我使用了rand功能。但不确定如何确保数字不重复。谢谢你的帮助
int i, n;
time_t t;
n = 7;
srand((unsigned) time(&t));
for( i = 0 ; i < n ; i++ ) {
printf("%d\t", rand() % 35);}
答案 0 :(得分:0)
您必须将之前创建的所有随机数存储到数组中,然后您必须将数组值与新创建的随机数进行比较,无论它是否已经创建。请参阅下面的代码并试一试。
int i, n;
time_t t;
n = 7;
int randval[n]
int rval = 0;
int j = 0;
srand((unsigned) time(&t));
int found = 0;
for( i = 0 ; i < n ; ) {
rval = rand();
j = 0;
found = 0;
while(j++ < i ){
if(rand[j] == rval){
found = 1;
break;
}
}
if(!found){
randval[i] = rval;
i++;
printf("%d\t", rval % 35);
}
}