c语言for循环条件不符还会,C语言第三课 for循环例.doc

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 main(){int i,s=0;for(i=10;i>0;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 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 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.双重循环的使用(循环的嵌套使用)双重循环的引

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值