C语言第三课 for循环例.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  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文档。上传文档
查看更多
C语言第三课 for循环例

C语言第三课 for循环例子 [ 2009-3-10 0:24:00 | By: 曹金华 ] 14 HYPERLINK javascript:void(null) 推荐 1.有一只猴子吃一堆果子,已知每天吃昨天剩下的果子的一半再多一个,直到第10天才吃完。问原来这堆果子有多少个? 题目变换:关于小明分糖果题;关于楼层小球弹跳后求楼高题。 本题题目分析:第10天才吃完,那就是说第11天剩下0个。 设第10天没吃之前还有x个,依题意,可得:x-(1/2x+1)=0 ——x=2 同样的道理,设第9天没吃之前还有x个,可得:x-(1/2x+1)=2 ——x=(2+1)*2; 从这两个表达式可以看出,s(i)=2*(s(i+1)+1);这个表达式说明了前后两天果子数之间的关系。 程序: #i nclude conio.h main() { int i,s=0; for(i=10;i0;i--) s=2*(s+1); printf(s=%d\n,s); getch(); } 程序说明: for循环变量用于控制循环次数,可以换成for(i=1;i=10;i++) 2. 国际象棋棋盘有64格,若在第1格放1粒谷;第2格放2粒谷;第3格放4粒谷;第4格放8粒谷……如此一直放到第64格。假设2000000粒谷有一顿重,问需要多少吨谷才够放? 第几格 1 2 3 4 …… 64 每格粒数 1 2 4 8 …… ? 总粒数 1 3 7 15 …… ? 规律:每一格粒数应为前一格粒数的2倍。n=n*2; 每一格总粒数应为前一格总粒数加上当前格的粒数。s=s+n; 再加上循环,用于控制循环的次数; 程序 #i nclude conio.h main() { int i; float n,s; i=1; n=1.0; s=1.0; for(i=2;i=64;i++) {n=n*2;s=s+n;} printf(s=%f\n,s/2000000); getch(); } 程序说明: 1) 本程序主要难点在于发现前后两格之间粒数的关系,在求得总粒数之前,必须先求出当前格的粒数。然后再进行累加。 2) 循环变量主要用于控制循环的次数。 3. 有一个数列,已知第一个数是0,第二个数是1。从第三个数开始每一个数是它前面两个数之和。求出这个数列的第3个至第24个数各是多少? 分析: 第几项 (1) (2) (3) (4) …… (24) 第 几 项 的 值 0 1 ? ? …… ? a b c=a+b ? …… ? a 新第一项 b 新第二项 c=a+b …… ? …… ? …… c=a+b 首先求第三个数,c=a+b=0+1=1; 求第四个数时,为了继续使用c=a+b;需要把第三项的值赋给b,第二项的值赋给a。如此循环,直至求出第24项。 程序: main() { int a,b,c,i; a=0;b=1; for(i=3;i=24;i++) { c=a+b; printf(“%6d”,c); a=b; b=c; } } 程序解释: 1) 循环变量i的作用是用于计算循环的次数,本身与循环体无关,因此我们也可以写成:for(i=1;i=22;i++) 2) 如果需要把第1,2个数也输出来,可以在for循环之前输入:printf(“0 1”); 3) 不能将最后两个赋值语句颠倒。 4. 求1+x/1!+x2/2!+x3/3!+……+xn/n!=? 分析:第0项是1,第一项是x/1,第二项是(x*x)/(1*2),第二项/第一项=x/2; 第二项是(x*x)/(1*2),第三项是(x*x*x)/(1*2*3),第三项/第二项=x/3; ………… 第n-1项是xn-1/(n-1)!,第n项是xn/n!,则第n项/第n-1项=x/n; 由此可以看出,我们为了求和,必须先求出第n项的值: s(n)=s(n-1)*x/n;这个式子是我们解题的关键步骤。 程序 #i nclude conio.h main() { int i,n,x; float t,s; printf(please input the result of n\n); scanf(%d,n); printf(please input the result of x\n); scanf(%d,x); t=1.0;s=1.0; for(i=1;i=n;i++) { t=t*x/i; s=s+t; } printf(s=%f\n,s); } 程序说明: 1) 在使用scanf函数前应用一条printf语句进行提示; 2) 解题的关键在于循环体的求出: t=t*x/i; s=s+t; 5. 5.双重循环的使用(循环的嵌套使用) 双重循环的引入: for(a=1;a=3;a++) { for(b=1;b=

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档