1.首先rand是一个伪随机数,不能够适应重复输出的要求,需要添加辅助代码,来设置一个节点。
#include<time.h>
srand((unsigned)time(NULL));
要求输出1--20的以内的随机数,不能重复,输出格式如下。
核心就是要注意输出的方括号位置,代码展示:
#include <stdio.h>
#include <stdlib.h>
#include<time.h>
#define n 20
int main()
{
int i,j,x;
int a[n]={0};
srand((unsigned)time(NULL));
//范围(m,n) x=rand()%(n-m+1)+m;
x=rand()%20+1;
a[0]=x;
for(i=1;i<n;i++){
x=rand()%20+1;
a[i]=x;
for(j=0;j<i;j++){
if(a[i]==a[j]){
i-=1;
break;
}
}
}
for(i=0;i<n-1;i++){
if(i==0){
printf("[%d,",a[i]);
}
else
printf(" %d,",a[i]);
}
if(i==n-1){
printf(" %d]",a[i]);
}
return 0;
}