网站大量收购独家精品文档,联系QQ:2885784924

《程序设计与C语言》课件第5章.ppt

  1. 1、本文档共223页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

每个能用递归解决的问题都可以用迭代方法解决。如果使用递归能够更自然地反映解决问题的过程并且易于理解和调试程序,则通常优先选用递归方法,因为迭代的过程不太明显。然而递归也有许多不利之处。大量地使用递归会占用处理器很多时间和内存,因为每次递归调用都会建立函数的一份拷贝(实际上是函数中变量的拷贝),这会占用大量的内存。而迭代发生在函数内部,不需要反复调用函数和占用额外的内存。另外,迭代过程可以单独地用一个函数实现,也可以直接在主函数中求解;而递归通常要编写成函数,由主调函数调用,不能在主调函数中直接进行递归。为完成一项任务而编制的程序可以由多个函数组成,也可以不使用函数。与不使用函数的整块程序相比,大量使用函数的程序会增加处理器的执行时间,但是整块程序难以编写、调试、测试和改进。因此必须在好的软件工程和好的性能之间作出权衡,两者往往不能同时实现。在开发大型、复杂的软件系统时,好的软件工程是更好地完成开发任务的关键;而在系统对硬件计算量的要求很大时,则好的性能就成为实现该系统的关键。5.8系统库函数前面我们已经指出,函数分为两类:一类是用户自定义函数;另一类是系统提供的函数,因为它们都被分门别类地存储于各种不同的库文件中,因此被称为系统库函数。例如我们常用的printf和scanf就是标准输入/输出库中提供的函数,而sqrt和fabs则是数学库中的函数。除此之外,还有其他一些库函数,比如字符处理库函数、字符串处理库函数、工具库函数等(详见附录)。它们都存放在以.h为扩展名的文件中(这些库文件分别是stdio.h、math.h、ctype.h、string.h和stdlib.h)。要使用这些库函数,必须使用预处理命令#include把它们所在的库文件包含进来(像我们一直做的那样)。系统库函数是考虑到各种情况后的最优化的程序,所以尽可能多地学习、掌握库函数,对编写高质量的程序是非常有好处的。5.8.1rand函数rand函数产生一个0到RAND_MAX之间的随机整数。RAND_MAX是在头文件stdlib.h中定义的符号常量。ANSIC标准规定RAND_MAX的值不小于32767。在每次调用rand函数时,0到RAND_MAX之间每一个数被选中的概率(机会)应该均等。直接用rand函数产生的数的范围与实际应用中所需的范围往往不同,这就需要把产生数的范围转换成所需要的范围。比如我们需要1~6之间的随机数,我们可以进行如下操作: rand()%6然后把求出的结果加1(即1+rand()%6),即可得到1~6之间的随机数。这个过程称为“缩放”,数6称为“比例因子”。根据这个原理,我们可以选择不同的比例因子以得到不同范围的随机数。比如要得到a到b之间的随机数,可用a+rand()%(b-a+1)来实现。【例5-31】模拟硬币投掷。验证:随着投掷次数的增多,硬币正面朝上和正面朝下的可能性为1∶1。#includestdio.h#includemath.h#includestdlib.hmain(){intface,i,f0=0,f1=0,n;floatr;printf(″Inputanumber\n″);scanf(″%d″,n);for(i=1;i=n;i++){face=1+rand()%2;if(face==1) f0++;elsef1++;}r=fabs(1-(float)f0/f1);printf(″face0:%d\n″,f0);printf(″face1:%d\n″,f1);printf(″difference:%f\n″,r);return0;}运行输出:Inputanumber:1000↙face0:477face1:523difference:0.096436再运行:Inputanumber:2000↙face0:972face1:1028difference:0.057613再运行一次:Inputanumber:5000↙face0:

文档评论(0)

酱酱 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档