如果要对一组数据进行随即排开,一定要用到随即函数,又因为随机数取在C语言中采用的是固定序列,所以每次执行rand()所取的是同一个数。一般采取使用时间来产生随即的种子,从而产生不同的随即数。下面是一段产生随即数的函数,差不多改改就可以实现你所要的功能了#include<stdlib.h>#include<stdio.h>#include<time.h>intmain(){inti;time_tt;srand((unsigned)time(&t));printf("Tenrandomnumbersfrom0to99\n\n");for(i=0;i<10;i++)printf("%d\n",rand()%100);return0;}这时运行程序,会发现每次产生的随机数都不一样。 那么为什么第一个程序一样而第二个程序不一样呢? 第二个程序用到了一个新的函数srand,这个函数是给随机数产生一个随机种子(seed),函数原型是srand((unsigned)time(NULL)); time的值每时每刻都不同。所以种子不同,所以,产生的随机数也不同。 所以说,要想产生不同的随机数,在使用rand之前需要先调用srand 由于rand产生的随机数从0到rand_max,而rand_max是一个很大的数,那么如何产生从X~Y的数呢? 从X到Y,有Y-X+1个数,所以要产生从X到Y的数,只需要这样写: k=rand()%(Y-X+1)+X; 这样,就可以产生你想要的任何范围内的随机数了。
阅读全文 >