#include<stdlib.h>
#include<time.h>
main()
{ int i,j,a[8]
srand(time(NULL))
for(i=0i<8i++){
a[i]=rand()%22+1
for(j=0j<ij++)
if(a[i]==a[j]) i--
}
for(i=0i<8i++)
printf("%d ",a[i])
}
如图所示,望采纳。。。。。。
#include<stdio.h>#include<stdlib.h>/*rand()函数的头文件*/
#define N 1000
/* rand()产生一个伪随机数*/
void main()
{
int i=0,j,a[N]={-1},flag
while(i<N)
{
flag = 1 + N * rand()/(RAND_MAX+1)/*rand()/RAND_MAX 该式表示所得到的是集合[0,1]中的随机数
若是使用rand()/(RAND_MAX+1) 则可得到集合[0,1)中的随机数
1000 * rand()/(RAND_MAX+1)可产生[0,1000),取整则是[0,999]中的随机数*/
j=0
for(j<ij++)
{
if(a[j] == flag) break //查找数组中是否已经有了随机产生的值,有则跳出循环,重新产生,无则存入数组
}
if(j>=i) {
a[j] = flag
i++
}
}
for(int k=0k<Nk++)
printf("%5d",a[k])
}
上面这个程序完全可以产生从1-1000的随机数,不信的话可以使用排序法查看所得结果。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)