- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言中-循环结构
void main() { double n=1.0,d=1.0,pi=0.0; int sign=1; do { pi=pi+d; n=n+2; sign=-sign; /*改变数据项的符号*/ d=sign/n; /*求出数据项*/ } while (fabs(d)=1.0e-6); pi=4.0*pi; printf(pi=%10.7lf\n,pi); } * 【例5.7】 用公式 … 求π的近似值,直到 最后一项的绝对值小于10-6为止。 三种循环的比较: (1)while 和do…while语句一般实现标志式循环,即无法预知循环的次数,循环只是在一定条件下进行;而for语句大多实现计数式循环。 (2)一般来说,while 和do…while语句的循环变量赋初值在循环语句之前,循环结束条件是while后面圆括号内的表达式,循环体中包含循环变量修改语句;一般for循环则是循环三要素集于一行。因此,for循环语句功能更强大,形式更简洁,使用更灵活。 (3)while和for是先测试循环条件,后执行循环体语句,循环体可能一次也不执行。而do…while语句是先执行循环体语句,后测试循环条件,所以循环体至少被执行一次。 5.4 多重循环结构 for( ; ; ) { … … } for( ; ; ) { … } for( ; ; ) { … } … for( ; ; ) { … } for( ; ; ) { … for( ; ; ) { } … } 嵌套循环 并列循环 交叉循环(错误) 循环的嵌套是指一个循环语句的循环体内完整的包含另一个完整的循环结构。前述三种循环结构(while循环、for循环、do-while循环)可以任意组合嵌套。循环的嵌套有双重循环嵌套和多重循环嵌套。但一般使用两重或三重的比较多,若嵌套层数太多,就降低了程序的可读性和执行效率。如果是多重循环,外循环和内循环应选用不同的循环控制变量。 * 双重循环嵌套:嵌套层次数为2层的循环嵌套 执行过程是:首先进行外层循环的条件判断,当外层循环条件成立时顺序执行外层循环体语句,遇到内层循环,则进行内层循环条件判断,并在内层循环条件成立的情况下反复执行内层循环体语句,当内层循环因循环条件不成立而退出后重新返回到外层循环并顺序执行外层循环体的其它语句,外层循环体执行一次后,重新进行下一次的外层循环条件判断,若条件依然成立,则重复上述过程,直到外层循环条件不成立时,退出双重循环嵌套,执行后面其它语句。 【例5.8】编写程序,输出1000以内所有的完数。如果一个整数的因子之和等于这个数本身,这个数就被称为完数。例如:1、2、3是6的因子,并且6=1+2+3,所以6是完数。 程序分析:此题应该分成两步来做。 第一步:判断一个数n是否为完数。可以定义一个变量s作为“累加器”,此问题仍然需要用前面讲过的 “穷举法”,从1~n-1逐一去除n,如果能除尽,就说明是n的因子,把它累加到s上。可以选用for循环。 第二步:外层循环对1000以内的所有正整数一一进行判断,利用第一步的方法,逐个判断n的因子之和s是否等于n。若相等,则显示输出。同样选用for循环。 * #includestdio.h int main() { int i,n,s; for(n=2;n=1000;n++) /*外循环*/ { s=0; for(i=1;in;i++)/*内循环求出n的所有因子之和*/ if(n%i==0) s+=i; if(n==s) /*判断a是否等于所有因子之和*/ printf(%d\n,n); } return 0; 循环控制结构 * 本章知识点: while语句的一般形式及应用 for语句的一般形式及应用 do...while语句的一般形式及应用 多重循环结构的使用 break语句和continue语句 * 5.1 while语句 语句的一般形式如下: while (表达式) 循环体语句 说明:while语句属于“当型”循环。 表达式 循环体语句 假(0) 真(非0) 图5.1 while语句流程图 说明: (1)while是关键字。while后圆括号内的表达式一般是关系表达式或逻辑表达式,但也可以是C 语言中任意合法的表达式。 (2)循环体语句可以是一条语句,也可以是多条语句,如果循环体语句包含多条语句,则需要用一对花括号“{}”把循环体语句括起来,采用复合语句的形式。 while (表达式) 循环体语句 【例5.1】 求前100个自然数的
文档评论(0)