第六章+循环结构程序设计.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
while (1) 循环体; 即不设初值,不判断条件,循环变量不增值。无终止地执行循环体。 (5)三个表达式都可省略,如 for ( ; ; ) 循环体; 1、for语句中表达式省略的形式 如: sum=0,i=1; for(;;) { if(i100) break; sum=sum+i; i++; } 相当于 第六章 6.3 for 语句 (6)循环体为空语句 对for语句,循环体为空语句的一般形式为: for (表达式1;表达式2;表达式3) ; 如:for(sum=0,i=1;i=100;sum+=i, i++) ; 1、for语句中表达式省略的形式 要在显示器上复制输入的字符,输入的字符为’.’时, 结束循环。 输入abcdefg. 输出abcdefg. while( putchar(getchar( ) )!=’.’ ) ; 第六章 6.3 for 语句 例6-6 判断一个数是否为素数? 一个数x在[2,sqrt(x)]范围内没有因子,我们就称其为素数(质数) 主要编程方法:循环变量终值法、标记变量法 第六章 6.3 for 语句 #include math.h void main() {int x,k; scanf( %d ,x); 排除法:如果有因子,不再往下判断是否是素数 循环变量终值法 for(k=2;k=sqrt(x);k++) if(x%k==0) break; if(ksqrt(x)) printf( %d is a prime ,x); else printf( %d is not a prime ,x); } 在判断范围内无因子,程序正常终止 有因子,程序非正常终止 第六章 6.3 for 语句 #include math.h void main() {int x,k,f=1; scanf( %d ,x); 排除法:如果有因子,不再往下判断是否是素数 for(k=2;k=sqrt(x);k++) if(x%k==0) {f=0;break; } if(f==1) printf( %d is a prime ,x); else printf( %d is not a prime ,x); } 在判断范围内无因子,程序正常终止 有因子,程序非正常终止 标记变量法 第六章 6.3 for 语句 例6-7 用0--9这十个数字可以组成多少无重复的三位数? 编程方法: “枚举法” 按问题本身的性质,一一列举出该问题所有可能的解,并在逐一列举的过程中,检验每个可能解是否是问题的真正解,若是,我们采纳这个解,否则抛弃它。对于所列举的值,既不能遗漏也不能重复。 第六章 6.3 for 语句 #include stdio.h void main() /*a,b,c代表百位、十位、个位*/ {int x,a,b,c,num=0; /*num存放满足条件的数的个数,注意num要赋初值*/ for(x=100;x=999;x++) {a=x/100;b=x/10%10;c=x%10; if(a!=ba!=cb!=c) { num++; printf(%5d,x); } } printf(\nnumber=%d,num); } 第六章 6.3 for 语句 [程序演示] 编程方法: “递推法” 例6-8 裴波那契数列的第1、2项分别为1、1,以后各项的值均是其前两项之和。求前30项菲波那契数。 所谓递推法就是从初值出发,归纳出新值与旧值间的关系,直到求出所需值为止。新值的求出依赖于旧值,不知道旧值,无法推导出新值。数学上递推公式正是这一类问题。 第六章 6.3 for 语句 f1--第一个数 f2--第二个数 f3--第三个数 f1=1; f2=1; f3=f1+f2; 以后只要改变f1,f2的值,即可求出下一个数. f1=f2;f2=f3; f3=f1+f2; 递推 第六章 6.3 for 语句 void main() {long f1=1, f2=1, f3; int k; 参考程序: printf( %ld\t%ld\t , f1,f2); for(k=3;k=30;k++) { f3=f1+f2;

文档评论(0)

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

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

1亿VIP精品文档

相关文档