c语言编程题随机函数方面 c语言中生成随机数函数

简单C语言程序随机函数程序?

前边输入自己搞定

网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、成都微信小程序、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了普宁免费建站欢迎大家使用!

假设前边输入了

n

个数字

到array数组中(数组可以定义大一点)

int

pR[6];

for(int

k=0;k6;k++)

{

pR[k]=rand()%n;//用随即函数生成

0到(n-1)之间的数字

for(b=0;bk;b++)//循环前边已经生成的随即数字

判断是否与当前生成的数字有重复的

{

if(pR[b]==pR[k])

{

k--;//

k自减

1

当前生成的随即数作废

从新循环

break;

}

}

}

for(int

i=0;i6;i++)//根据刚才生成的随机数

将对应位置的数据输出

{

printf("%d\n",array[pR[i]]);

}

c语言随机函数问题

randomize();

random(100);

都不是标准的库函数。

srand 产生 种子,用来初始化,供 计算伪随机数序列。

rand 计算随机数,用当前种子,即 默认种子或 srand 产生的 种子。

不同编译器,库函数名可能不同,但基本原理相同。一个产生种子,一个计算伪随机数序列。

如果不用srand 产生新的种子,伪随机数序列是不变的。达不到模拟“随机”的目的。

帮忙用C语言解决下随机函数的编程题

完整版纯C程序:

#includestdio.h

#includestdlib.h

#includetime.h

#define N 20

void sel_sort(int [],int); //选择排序

int search(int [],int,int); //查找

void insert(int [],int [],int,int); //插入

int num_by_mechine(void) //产生随机数

main()

{

int a[N],x;

int i,index,b[N+1];

srand(time(NULL)); //为随机数发生器rand()播种

for(i=0;iN;i++)

a[i]=num_by_mechine();

printf("before sel_sort...\n");

for(i=0;iN;i++)

printf("%4d",a[i]);

printf("\n");

sel_sort(a,N);

printf("after sel_sort...\n");

for(i=0;iN;i++)

printf("%4d",a[i]);

printf("\n");

printf("please input x:");

scanf("%d",x);

index=search(a,x,N);

if(index!=-1)

{

printf("find x,x=a[%d]!\n",index);

printf("delete a[%d]...\n",index);

for(i=index+1;iN;i++)

a[i-1]=a[i];

for(i=0;iN-1;i++)

printf("%4d",a[i]);

}

else

{

printf("no find!\n");

printf("after insert...\n");

insert(a,b,x,N);

for(i=0;iN+1;i++)

printf("%4d",b[i]);

}

}

int num_by_mechine(void)

{

return(rand()%100+1); //产生一个分布在1~100之间的随机整数

}

void sel_sort(int a[],int n)

{

int cur,i,t;

for(cur=0;curn-1;cur++)

for(i=cur;in;i++)

if(a[i]a[cur])

t=a[cur],a[cur]=a[i],a[i]=t;

}

int search(int a[],int x,int n)

{

int front=0,back=n-1,middle;

while(front=back)

{

middle=(front+back)/2;

if(xa[middle])

back=middle-1;

else if(xa[middle])

front=middle+1;

else

return(middle);

}

return -1;

}

void insert(int a[],int b[],int x,int n)

{

int i,j;

for(i=0;in;i++)

b[i]=a[i];

for(i=0;in;i++)

if(a[i]x)

{ for(j=n;ji;j--)

b[j]=b[j-1];

b[i]=x;

return;

}

b[n]=x;

}

关于C语言随机函数

把 srand( time(0) ); 放在循环外每次产生随机数的种子也是一样的啊,为什么产生的随机数就不一样了?

因为随机函数只需要一个种子就能产生一系列的随机数,并不是每个随机数都需要一个种子。

你把 srand(time(0)) 放到循环前面就可以了。

原因: time(0)返回的是系统的时间(从1970.1.1午夜算起),单位:秒,而那个循环运行起来耗时连0.000001秒都不到! 也就是说,srand(time(0)) 连着4次的种子是一样的,种子一样,生产的随机数当然是一样了。

如果你在把srand()放循环里面,在中间加个sleep函数,消耗一点时间(间隔大于1秒),那么生成的rand 就不一样了.但是这样做很不好,连着两次用srand生成的种子,间隔一样,生产的随机数间隔有会有规律性。

另:因为两次运行同一程序的时间肯定是不一样的,所以把srand放在循环前面可以得不同的种子,这样才能得到你想要的。

关于C语言编程中随机数函数的使用问题

rnd是vb中的随机函数,应该用rand();

函数说明

rand()会返回一随机数值,范围在0至RAND_MAX

间。在调用此函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。关于随机数种子请参考srand()。

srand((int)time(0));

是产生的随机数每次不一样。

#includetime.h

#includestdlib.h

main()

{

int

i,j;

srand((int)time(0));

for(i=0;i10;i++)

{

j=1+(int)(10.0*rand()/(RAND_MAX+1.0));

printf("

%d

",j);

}

}

执行

5

8

8

8

10

2

10

6

9

9

2

9

7

4

10

3

2

10

8

7


当前文章:c语言编程题随机函数方面 c语言中生成随机数函数
链接地址:http://cdiso.cn/article/hhgohh.html

其他资讯