2022年循环结构程序设计典型例题 .pdf
《2022年循环结构程序设计典型例题 .pdf》由会员分享,可在线阅读,更多相关《2022年循环结构程序设计典型例题 .pdf(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、循环结构程序设计典型例题例 1:有数列2/3、4/5、6/9、10/15求此数列前30 项的和。算法分析:对于数列的题, 首先要找出通项公式,或前后项的计算关系公式,根据公式求所需。由于数列的题一般执行次数能确定,用for 语句来编写比较方便。此题,前后项的关系是:后一项的分子是前一项的分母加1,后一项的分母是前一项的分子加分母。解题思路是用循环语句求各项,并把值累加,因为是求前30 项的和,循环执行 30 次。1. 初值 i=2,j=3,s=0; 2. 用 n 从 1 到 30 循环3. s=s+ i/j; 4. c=i; i=j+1; j=c+j; 5.输出 s;程序:#include m
2、ain( ) int i=2,j=3,n,c; float s=0; for(n=1;n=30;n+) s=s+(float)i/j; c=i; i=j+1; j=c+j; printf( “n%f” ,s); 此题中的n 与循环体中的执行语句没有数值上的联系,仅仅用做决定循环执行的次数。例 2:下面这个程序,想想它实现的是什么功能?#include main( ) int i,s=0; for(i=1;i=100;i+) if(i%5=0) continue; s=s+i; printf(“n%d ” ,s); 在左边的程序中,i 从 1 到 100 循环,当 i 是 5的倍数时,直接进入下
3、一个i,当 i 不是 5的倍数时,把i 累加到 s, 最后输出s。 所以,这个程序实现的是求1100 中间所有非5 的倍数的数之和。例 3:输出 nm 中 (0n0,执行第 6 步,否则执行第9 步6.i=x%10 7.若 i 值不为 5,执行第 8 步,否则输出a,并执行第9 步8.x=x/10,并返回第5 步9.返回第 2 步,察看下一个a 程序:#include main( ) long a,x,i,t,n,m; scanf(“ %ld%ld ” ,&n,&m);for(a=n;a0) i=x%10; if(i=5) printf ( “ t%ld ” ,a);break;x=x/10;
4、 问:能把a%3=0 也放到 for 循环语句的表式2 中,写成a=m&a%3=0吗?答:不可以!例 4:求 3-150 中所有素数的和。算法分析:1.用变量 a 从 3 到 150 循环,每次值增加1 2.用变量 i 从 2 到 a-1 循环,每次值增加1 3.若 a%i=0 ,结束 i 的循环,执行第4 步4.若 i=a,把 a 累加到 s 上。5.输出 s的值注意:此题中执行第4 步时有两种情况。第一种:在第3 步中发现了满足a%i=0 的情况,直接跳出了i 的循环,此时的i 一定是在2 到 a-1 中间的一个值,而且a 不是素数。第二种:一直没有发现满足a%i=0 的 i,在 i=a
5、时,不再满足i 循环的执行条件, i 循环结束,此时的a 是素数!程序:#include main( ) int a,s=0,i; for(a=3;a=150;a+) for(i=2;i=a-1;i+) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 7 页 - - - - - - - - - if(a%i=0) break; if(a=i) s=s+a; printf(“n%d ” ,s) 求素数的方法很多,大同小异。此题可以做一些改动。如:i 的值可以是从2 取到 s
6、qrt(a);可以不用最后察看i 的值, 而是通过在发现因子时改动标志变量,最后根据标志变量的值判断是否是素数。例 5:有一个八层高的灯塔,每层所点灯数都等于上一层的两倍,一共有765 盏灯,求塔底灯数。算法分析:此题的关键在于塔顶的灯数,只要知道了塔顶的灯数,就可知道塔底灯数。这里采取试探的方法来求塔顶灯数。设塔顶灯数为x,x 的初值从1 开始循环,每次值加1。求出相应的灯的总数,总数不为 765,继续下一个x 的循环,直到某次求得灯总数为765 时,结束 x 的循环,输出此时塔底灯数。1.x 从 1 开始循环,每次值加1 2.设 k 初值 x,计算每层灯数。设s 初值 0,累加每层灯数3.
7、 i 从 1 到 8 循环,每次值加1 4. s=s+ k; k=k*2; 5.如果 s=765 ,结束 x 的循环4. s=s+ k; k=k*2; 程序:#include main( ) int x,s,i,k; for(x=1;x+) s=0; k=x; for(i=1;ibc0,a、b、c 为整数,且a+b+cbc、 a+b+cb&bc&a+b+c100&c*c*(a*a+b*b)=a*a*b*b,统计找到了一组5.输出找到的组数程序:#include main( ) long a,b,c,n=0; for(c=1;c=97;c+) for(b=c+1;b=98;b+) for(a=b
8、+1;a=99;a+) if(a+b+cbc,而不需要再在if 中判断。改进如下所示:for(a=1;a=99;a+) for(b=1;b=99;b+) for(c=1;cb&bc&a+b+c100 &c*c* (a*a+b*b)=a*a*b*b) n+; 例 6:e=1+1/1!+1/2!+ .+1/n!(精度为 1e-6) 分析:用变量e求和, e 初值为 1。用变量t 求阶乘, t 初值为 1。用变量i 从 1 开始累加循环, t=t*i,e=e+1.0/t 。#include void main( ) int i=1; long t=1; float e=1; while(e-(int
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年循环结构程序设计典型例题 2022 循环 结构 程序设计 典型 例题
限制150内