生成一定范围内不重复的随机数
先写一个和随机数有关的东西
之后是各种代码了
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
//void Random(int min, int max, int n)
//{
// int i;
// srand((unsigned)time(NULL));
// for (i = 0; i < n; i++)
// {
// int t = ((max - min + 1)*rand() / (RAND_MAX + 1.0) + min);
// printf("%d\n", t);
// }
//}
int main()
{
int min, max, n, i;
n = 5;
min = 1;
max = 32;
srand((unsigned)time(NULL));
for (i = 0; i < n; i++)
{
int t = ((max - min + 1)*rand() / (RAND_MAX + 1.0) + min);
printf("%d\n", t);
}
return 0;
}
//zq的代码
#include<stdio.h>
#include <stdlib.h>
#include <time.h>
int st[32];
int main()
{
srand((unsigned)time(NULL));
int t = 5;
while(t --){
int n = rand()%32+1;
if(!st[n]){
st[n] ++;
printf("%d\n",n);
}
else{
t ++;
}
}
return 0;
}
//正常人的代码
#include<stdio.h>
#include <stdlib.h>
#include <time.h>
int st[32];
int main()
{
int i, n;
n = 5;
int a[n + 10];
srand((unsigned)time(NULL));
a[0] = rand()%32+1;
for(i = 1; i < n; i ++){
a[i] = rand()%32+1;
for(int j = 0; j < i ;j ++){
if(a[j] == a[i]){
i --;
break;
}
}
}
for(i = 0; i < n; i ++)printf("%d\n",a[i]);
return 0;
}