c 语言 课件3.pptVIP

  1. 1、本文档共78页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章 程序和流程控制 算法的描述方法 基本控制结构 基本控制语句 常用算法,如累加、累乘、统计、递推、迭代、穷举等 程序的基本版式 结构化程序设计的基本思想 典型程序编写方法举例 本章我们强调了程序的风格和结构的规范化,但是当我们面对一个较为复杂的编程问题时, 是不可能立即编写出风格和结构具佳的程序的。一般的方法是采用自顶向下逐步求精的模块化,结构化的方法进行分析和设计,把一个复杂问题变成若干便于实现的小问题,本章讲述的是单个程序的编写,即是如何编写这些便于实现的小问题的程序,下面针对几类问题进行分析和实现。 [一] 典型问题1 例3.10 求序列: 1, 3, 5, 7, 9………..的前二十项和。 分析: 我们可以由上面的数列观察得出 如下规律: 第i+1项 =第i项 + 2 程序如下所示: #includestdio.h void main( ) { int i; int sum, t ; //sum代表和, t代表某项 sum = 0 ; t = 1 ; for (i=1 ; i=20 ; i++) { sum + = t; t += 2; } printf( sum = %d,sum); } 该程序的运行结果为: sum =400 分析上面的程序我们不难得出该程序的结构大致如下: 头文件部分 void main() { 变量说明部分; 初始化 ( 和清零, 项变量初始化第一项) 循环( 根据条件决定) { 累加一项; 根据本项计算下一项; } 输出结果; } 根据上述程序的结构规律我们可以将其推广到任何多项序列求和的编程, 只要项与项之间有规律即可,再看下面的例子。 例3.11 求序列: 1!, 2!, 3!, 4!………..的前八项之和. 首先分析项与项的关系,可以得出如下规律: 第i+1项 =第i项 * (i+1) ; 由此根据上面的通用程序结构可以编写出对应程序如下: #includestdio.h void main( ) { int i; int sum, t ; //sum代表和, t代表某项 sum = 0 ; t = 1 ; for (i=1 ; i=8 ; i++) { sum + = t; t *= (i+1); } printf( sum = %d,sum); } 该程序的运行结果为: sum =46233 比较[例3.10]和[例3.11],虽然两个程序完成的功能不同但两个程序却是如次的相似,区别仅仅在于以下几点 (1).变量说明不一样; 这恰恰是编程者应该注意的,我们在编写此类程序时一定要注意项和结果的数据类型已及它们的数据范围,在用printf()语句输出时也要注意此点。 (2).循环的条件不一样,这一点一般很容易根据要求得出。 例3.12 求序列: ……,所有大于等于0.000001的数据项之和,显示输出计算的结果。 根据分析:我们虽然不能直接用算术表达式表达某项与它的前一项的关系, 但可以通过拆分的方法表达两项之间的关系。 如本数列的项可以拆分成分子和分母: 第i项分子: ai=ai-1 + 2; 分母: bi=bi-1* 2; 相应程序如下: #include stdio.h #include math.h void main() { int i; float sum, a, b; // sum代表和,a为分子,b为分母 sum = 0; a = 1; // 分子赋初值 b = 2; // 分母赋初值 while (a / b = 1e-6) { sum

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档