首页 理论教育C语言程序设计基础:数组元素随机生成

C语言程序设计基础:数组元素随机生成

【摘要】:在前面的章节中已经讨论过整数的产生方法,本小节以数组为载体进一步讨论产生随机数的技术。为了能够在程序中随机生成数据,需要使用C语言提供的srand、rand和time 3个标准库函数。随机生成20个3位以内的整数序列存放在数组中,然后用每行10个数据的形式输出所有数组元素。程序一次运行结果为:6 73 796 864 999 12 881 293 634 453110 636 127 541 896 731 615 841 533 796在上面程序中,用表达式rand()%1000获取3位以内的随机整数。

在前面的章节中已经讨论过整数的产生方法,本小节以数组载体进一步讨论产生随机数的技术。

为了能够在学习程序设计的过程中深刻体会被处理数据的多样性和不可见性,有必要用某种方法来模拟所处理的数据,在程序中随机生成所处理的数据就是一种比较好的模拟数据方法。为了能够在程序中随机生成数据,需要使用C语言提供的srand、rand和time 3个标准库函数。

srand函数的功能是初始化随机数发生器,函数原型在头文件stdlib.h中声明,其原型为:

void srand(unsigned int seed);rand函数的功能是随机产生一个在0到RAND_MAX(0x7fff)之间的正整数,函数在头文件stdlib.h中声明,其原型为:

int rand(void);

time函数的功能是获取系统时间,函数原型在头文件time.h中声明,其原型为:

time_t time(time_t*timer);

其中的数据类型time_t是一个系统定义好的长整型数据类型,其变量用于存放从系统中取出的以秒为单位的整型数据,参数time_t*timer表示用timer数据对象保存取出的时间值,调用时用空(NULL)作为参数(即调用形式为:time(NULL))则表示只需要用其返回的长整型数值而不需要保存该值。

【例6.18】 随机生成20个3位以内的整数序列存放在数组中,然后用每行10个数据的形式输出所有数组元素。

程序一次运行结果为:(www.chuimin.cn)

6 73 796 864 999 12 881 293 634 453

110 636 127 541 896 731 615 841 533 796

在上面程序中,用表达式rand()%1000获取3位以内的随机整数。在实际的程序设计实践中,可以通过下面所列的表达式形式获取所需要的各种类别随机数据:

100+rand()%900//获取3位随机整数,通式:100+rand()%(1000-100)

'A'+rand()%26//获取随机的大写英语字母

'a'+rand()%26//获取随机的小写英语字母

(10000+rand()%90000)*1e-2 //获取3位以内整数部分,2位小数的随机实数

100+rand()%900+rand()%100*1e-2 //获取3位整数部分,2位小数的随机实数