
程序设计基础(上) 张立红 13405330459(88028) QQ:2653453357 9#501
程序设计基础(上) 张立红 13405330459(88028) QQ:2653453357 9#501

第7章 函数 2153
第7章 函 数 2/53

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

7.5随机数函数 ANSI C程序提供了函数来产生随机数 -可以根据需要生成各种随机数。 1.基本随机数函数 int rand();//伪随机数生成函数 注意:rand0是一个“伪随机数发生器” void srand(unsinged int seed);//种子函数 -这两个函数的原型包含在头文件stdlib.h中。 说明: 1)调用函数rand0:生成一个在0和正整数RAND MAX(32767)之 间均匀分布的伪随机整数,多次使用函数and0可以生成多个整数组成 的伪随机整数序列,但是该伪随机数序列是固定值。 2)使用种子函数srand0可以改变调用rand0所产生的随机数序列的起 始点,从而使伪随机数序列更“随机”一些, 例如:使用随时间变化的值作为srandOi函数的参数
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 ②include ③int main) ④{double t1,t2;inti; ⑤ t1=time(0);W或time(NULL)一当前时间 ⑥ ∥将要测试的代码放在这里计数单位为秒 ⑦ for(i=1;i<=1000000000;i++) ⑧ i*i街 ⑨ t2=time(o);W/或time(ULL)一当前时间 ⑩ printf("运行耗时:%.2lfn",t2-t1); 1① return 0; ②} time(NULL:从格林威治时间1970年1月1日0点0分0秒到现在的秒数 5
例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; ⑫ } 5 time(NULL):从格林威治时间1970年1月1日0点0分0秒到现在的秒数

例7.14:利用基本随机函数产生10个伪随机整数 ①#include ②#include饱含标准数据如:sra ③#include ??如何随机产生 ④int main() 10以内的整数 ⑤{intk; ⑥ printf(("%ldn",time(NULL);W当前时间 ⑦ srand(time(NULL);∥将系梦前时间作为随机种子 ⑧ for(k=1;k<=10;k++) ⑨ printf("%d小n",rand();∥利用伪随机函数产生随机数 ⑩ printf("MAX=%d\n",RAND_MAX); ① //RAND MAX是系统定义的常数值32767 ② return 0; ③} 6
例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以内的整数 6

例7.14-1:产生10个0~40的随机数(点名系统) ①include ②#include ③include ④int main(0 ⑤{inti,n; ⑥ srand(time(O);l/time(O)返回值一当前时间作种子 ⑦ for (i=1;i<=40;i++) ⑧ n=rand()%41; ⑨ /rand0返回值对41取余-保证了随机数为0~40。 ⑩ printf("%dIn",n); ① ② return 0; ③ 7180
例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; ⑬ } 7/80

例7.15:利用基本随机函数产生10个伪随机小数 ① #include ②#includeI咆含标准数据如:srand、rand()、.RAND_MAX ③#include ④int main() ⑤{intk; ⑥ printf("current time=%ld\n",time(NULL)); ⑦ srand(time(NULL);∥将系统当前时间作为随机种子 ⑧ for(k=0;k<10;k++) ⑨ printf("%Ifn",1.0*rand()/RAND_MAX); ⑩ return 0; ①} 8
例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; ⑪ } 8

下课了。 既 22编序规海9 多%e缩gag 休息一会儿。 9/53
下课了。 休息一会儿。 9/53