
第7章函数1/53
第7章 函 数 1/53

第7章知识点7.1函数概述7.2i函数定义和调用7.3嵌套调用和递归调用7.4变量与函数7.5随机数函数2/53
第7章 知 识 点 7.1 函数概述 7.2 函数定义和调用 7.3 嵌套调用和递归调用 7.4 变量与函数 7.5 随机数函数 2/53

7.5随机数函数ANSIC程序提供了函数来产生随机数--可以根据需要生成各种随机数1.基本随机数函数1intrand();//伪随机数生成函数注意:rando是一个“伪随机数发生器”void srand(unsinged int seed);//种子函数-----这两个函数的原型包含在头文件stdlib.h中。说明:调用函数randO:生成一个在0和正整数RANDMAX(32767)之间1均匀分布的伪随机整数,多次使用函数randO可以生成多个整数组成的伪随机整数序列。注意:若没种子,该伪随机数序列是固定序列值。使用种子函数srando可以改变调用randO所产生的随机数序列的固定20性,从而使伪随机数序列更“随机”一些,例如:使用随时间变化的值作为srando函数的参数
7.5 随机数函数 ANSI C 程序提供了函数来产生随机数 -可以根据需要生成各种随机数。 1.基本随机数函数 ① int rand( ); // 伪随机数生成函数 注意:rand() 是一个“伪随机数发生器” ② void srand(unsinged int seed); //种子函数 -这两个函数的原型包含在头文件stdlib.h中。 说明: 1)调用函数rand():生成一个在0和正整数RAND_MAX(32767)之间 均匀分布的伪随机整数,多次使用函数rand()可以生成多个整数组成的伪随 机整数序列。注意:若没种子,该伪随机数序列是固定序列值。 2)使用种子函数srand()可以改变调用rand()所产生的随机数序列的固定 性,从而使伪随机数序列更“随机”一些, 例如:使用随时间变化的值作为srand()函数的参数

例1:测试代码运行时间#include#includeint main()double t1,t2; int i;t1=time(O);I/或time(NULL)一当前时间I将要测试的代码放在这里--计数单位为秒for(i=1;i<=1000000000;i++)i*i;t2=time(O);l/或time(NULL)一当前时间10printf("运行耗时:%.2Ifln",t2-t1);return O;?7timeNULL):从格林威治时间1970年1月1日0点0分0秒到现在的秒数4
例1:测试代码运行时间 ① #include ② #include ③ int main() ④ { double t1,t2; int i; ⑤ t1=time(0); //或time(NULL)—当前时间 ⑥ //将要测试的代码放在这里-计数单位为秒 ⑦ for (i=1;i<=1000000000;i++) ⑧ i*i; ⑨ t2=time(0); //或time(NULL)—当前时间 ⑩ printf("运行耗时:%.2lf\n", t2-t1); ⑪ return 0; ⑫ } 4 time(NULL):从格林威治时间1970年1月1日0点0分0秒到现在的秒数

例7.14:利用基本随机函数产生10个伪随机整数#include#include1包含标准数据如:sra??如何随机产生#include10以内的整数intmain()5int k;printf("%ldn",time(NULL));J小当前时间srand(time(NULL));//将系统前时间作为随机种子for(k=1;k<=10;k++)printf("%d\n",rand());I利用伪随机函数产生随机数printf("MAX=%dIn", RAND_MAX);1I/RANDMAX是系统定义的常数值32767return 0;③15
例7.14:利用基本随机函数产生10个伪随机整数 ① #include ② #include //包含标准数据如:srand 、rand()、RAND_MAX ③ #include ④ int main( ) ⑤ { int k; ⑥ printf("%ld\n", time(NULL));//显示当前时间 ⑦ srand(time(NULL)); //将系统当前时间作为随机种子 ⑧ for(k=1;k<=10;k++) ⑨ printf("%d\n", rand()); //利用伪随机函数产生随机数 ⑩ printf("MAX=%d\n", RAND_MAX); ⑪ //RAND_MAX是系统定义的常数值32767 ⑫ return 0; ⑬ } ??如何随机产生 10以内的整数 5

例7.14--1:产生10个0~40的随机数(点名系统)#include#include#includeint main()int i,n;5srand(time(0));//time(0)返回值一当前时间作种子一for (i=1;i<=40;i++)n = rand0%41;I/rand0函数值对41取余--保证了随机数为0~40。10printf("%din", n);return O;13)6/80
例7.14-1:产生10个0~40的随机数(点名系统) ① #include ② #include ③ #include ④ int main() ⑤ { int i,n; ⑥ srand(time(0)); //time(0)返回值—当前时间作种子 ⑦ for (i=1;i<=40;i++) ⑧ { n = rand()%41; ⑨ //rand()函数值对41取余-保证了随机数为0~40。 ⑩ printf("%d\n", n); ⑪ } ⑫ return 0; ⑬ } 6/80

例7.15:利用基本随机函数产生10个伪随机小数#include#includeI/包含标准数据如:srand、rand()、RAND_MAX#includeintmain()5int k;6printf("current time=%ldn",time(NULL));srand(time(NULL));I将系统当前时间作为随机种子for(k=0;k<10;k++)printf("%lfIn",1.0*rand()/RAND_MAX);return O;①}
例7.15:利用基本随机函数产生10个伪随机小数 ① #include ② #include //包含标准数据如:srand 、rand()、RAND_MAX ③ #include ④ int main( ) ⑤ { int k; ⑥ printf("current time=%ld\n", time(NULL)); ⑦ srand(time(NULL)); //将系统当前时间作为随机种子 ⑧ for (k=0;k<10;k++) ⑨ printf("%lf\n", 1.0*rand()/RAND_MAX); ⑩ return 0; ⑪ } 7

下课了。。研究arting休息一会儿。。Kie cere ae ss fe8:8/53
下课了。 休息一会儿。 8/53