第十一章 C语言while、do-while、for循环 课程5.docx

第十一章 C语言while、do-while、for循环 课程5.docx

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言while、do-while、for循环课程5编辑作者张进杰 2012.10.29课程3中,提到C语言基本语句分为:数据定义语句,数据处理语句数据处理语句又可分为:表达式语句,函数调用语句,空语句(;),复合语句,流程控制语句。流程控制:指程序代码执行的顺序。流程的分类:顺序、选择、循环。C语言的循环结构通过三种语句来实现,即while、do-while、forWhile语句的一般形式 while (循环条件表达式)循环体语句;功能:当循环条件表达式为真,执行循环体语句,执行完了,再判断条件表达式是否为真,为真,则再执行,直到条件表达式为假时,退出while循环。实例1:用while语句求1~100的累加和。#includestdio.h//C语言编译预处理命令,文件包含为stdio.hvoid main()//至少有一个用main()命名的主函数,返回值为void无值类型{inti=1,sum=0;/*初始化循环,定义变量i和累加器sum,定义和之前,累加器清零*/while(i=100){sum+=i;//sum+=i是一个复合赋值运算符,等价于sun=sun+i;i++;}printf(1+2+3+...+100=%d\n,sum);//输出十进制数,1加到100累加器的和}Microsoft Visual C++ 6.0运行结果使用while循环时,一定要对循环条件表达式中出现的变量提前赋值,并在循环体内修改有关变量的值,以使循环能趋于终止。While循环为当型循环,do-while循环也叫直到型循环。do-while语句的一般形式为:do{循环体语句} while(循环条件表达式)实例2: 用do-while编制一个求n!的程序,n的值由键盘输入。#includestdio.hvoid main(){ inti=1,n,p=1;printf(请从键盘输入一个数,进行连乘积:\n);scanf(%d,n);do { p=p*i;i++; } while (i=n);printf(连乘积的结果为p=n!:%d\n,p);}分析:此程序,先定义三个变量i、n、p,p从p乘1开始执行,再i进行自增1,循环体中的语句执行完毕后,判断while的循环条件表达式,当i自增1为2时,看2是否=输入的n值,若为真,则继续返回do循环,直到i自增的值比n大,则退出循环。do-while主要用于人机交互,do-while循环是先执行后判断,do里面的循环体至少被执行一次。区别于while是先判断循环条件表达式,后执行。for循环也叫步长型循环一般格式:for(表达式1;表达式2;表达式3)循环体语句;功能: 先执行表达式1,再执行表达式2,如果表达式2的值为真,就执行循环体语句,最后执行表达式3.完成一次循环后,从表达式2执行,直到表达式2为假,退出循环。实例3:参考实例1,用while求1~100的累加和,现在用for语句求1~100的累加和。# include stdio.hint main(void){inti;int sum = 0; /*初始化循环,定义变量i和累加器sum,定义和之前,累加器清零*/for (i=1; i=100; i++) {sum = sum + i;}printf(sum = %d\n, sum);return 0;}实例4:爱因斯坦的阶梯问题:有一个长阶梯,若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;只有每步上7阶,最后刚好一阶也不剩。请问该阶梯至少有多少阶。编写一个C程序解决该问题。#include stdio.h main( ){int x; for(x=7; ;x+=7) if(x%3==2x%5==4x%6==5) break;printf(The number of the ladders is:%d\n,x);}分析:发现x一定是7的整数倍,可以依次递增地求出7的整数倍的值(7*1、7*2、7*3……),每求出一值,就用该值与2、3、5、6进行取模运算,最先得到的满足上述5个方程式的x值即为本题的答案。用while语句,简单快速实现爱因斯坦的阶梯问题#includestdio.hint main(){inti=1; /*i为所设的阶梯数*/while(!((i%2==1)(i%3==2)(i%5==4)(i%6==5)(i%7==0)))++i; /*满足一组同余式的判别*/printf(Staris_number=%d\n,i);}课程6将分析,C语言的四种转移控制语句:break、continue、return、goto的转移控制功能。鸣谢!

文档评论(0)

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

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

1亿VIP精品文档

相关文档