怎样用C语言生成10个1到100的不重复的随机数?

2024年11月19日 23:14
有4个网友回答
网友(1):

楼主你好!
根据你的要求我已经将代码实现如下
#include
#include
#include

int main(){
int a[10];
srand((unsigned)time(NULL));
for(int i=0;i<10;i++){
A: a[i]=rand()%99+1;
for(int j=0;j a[i]=rand()%99+1;
if(a[i]==a[j])goto A;
else break;
}
}
for(int i=0;i<10;i++)
printf("%d ",a[i]);
}

希望我的回答对你有帮助!

网友(2):

/*
7 29 89 2 63 35 34 82 96 87 69 6 44 12 5 93 4 67 46 83
Press any key to continue
*/
#include
#include
#include

#define N 20
int main() {
int i,j,flag,num,a[N];
srand((unsigned)time(NULL));
for(i = 0; i < N; ++i) {
num = rand()%98 + 1;
flag = 1;
for(j = 0; j < i; ++j) {
if(num == a[j]) {
flag = 0;;
break;
}
}
if(flag) a[i] = num;
else --i;
}
for(i = 0; i < N; ++i)
printf("%d ",a[i]);
printf("\n");
return 0;
}

网友(3):

用随机函数就好了
抄楼下的,但算法结构比楼上 好
#include
#include
#include
int main()
{
int srand_num[10];
srand((unsigned)time(NULL));
for(int i=0;i<10;i++)
{
a[i]=rand()%99+1;
if(i>0&&srand_num[i]==srand[i-1]) i--;
}
for(int i=0;i<10;i++)
printf("%6d",srand_num[i]);
}

网友(4):

rand()函数,遇到重复的不输出就ok了嘛