第五章循环结构程序设计(共66页)

上传人:gfy****yf 文档编号:27702125 上传时间:2021-08-19 格式:PPT 页数:66 大小:640KB
收藏 版权申诉 举报 下载
第五章循环结构程序设计(共66页)_第1页
第1页 / 共66页
第五章循环结构程序设计(共66页)_第2页
第2页 / 共66页
第五章循环结构程序设计(共66页)_第3页
第3页 / 共66页
资源描述:

《第五章循环结构程序设计(共66页)》由会员分享,可在线阅读,更多相关《第五章循环结构程序设计(共66页)(66页珍藏版)》请在装配图网上搜索。

1、第第第 5章章章 循 环 结 构 程 序 设 计循 环 结 构 程 序 设 计循 环 结 构 程 序 设 计 2 3NYP成 立?A当 P成 立 时 A A当 P成 立 时 YNAP成 立?N-S流程图流程图 4 5 6当 表 达 式 为 真 语 句表 达 式 非 0?语 句 7思 路 : 寻 找 加 数 与 求 和 的 规 律 加 数 从 1变 到 100, 每 循 环 一 次 , 使 i增 1, 直 到 i的值 超 过 100。 的 设 为 1。求 和 设 变 量 存 放 和 , 循 环 求 ,直 至 i超 过 100。 8#include main( ) int i,sum; i=1;

2、sum=0; while ( ) sum=sum+i; i+; printf(sum=%dn,sum); 程 序 输 出 结 果 :sum=5050 i=1, sum=0 当 i = 100 sum=sum+i i+输 出 sum 9 while (i=100) i+; sum=sum+i; 10 11自 学 :P58例 4-1;P61例 4-2。 12 13 循 环 体当 表 达 式 为 真N-S结 构 图N Y循 环 体表 达 式 非 0?流 程 图 main( ) int i=1,sum=0; do sum=sum+i; i+; while (i=100); printf(%dn,sum

3、); 14 15输 入 一 些 数 , 求 和 , 直 到 输 入 负 数 为 止 。#include void main( ) int x, sum=0; do scanf(%d, sum+=x; while (x0); printf(sum=%d, sum); #include void main( ) int x, sum=0; scanf(%d, while (x0) sum+=x; scanf(%d, ; printf(sum=%d, sum);输 入 1 2 5 -10输 入 -10 1 2 5sum-x 16定 义 m、 n、 rmnT F m和 n交 换r=m%nm=nn=r

4、当 r != 0时 输 出 最 大 公 约 数 m自 学 :P62例 4-3。 17 18N-S结 构 图for (表 达 式 1;表 达 式 2;表 达 式 3) 语 句NY流 程 图计 算 表 达 式 1 语 句计 算 表 达 式 3表 达 式 2为 真 ? main( ) int i,sum; sum=0; printf(sum=%dn,sum); 19;for ( ; i100) 20for (i=1; i=100; ) i+; for ( ; ; ) 总 结 : 在 省 略 某 个 表 达 式 时 , 应 在 适 当 位 置 进 行循 环 控 制 的 必 要 操 作 , 以 保 证

5、循 环 的 正 确执 行 。 21 for ( i=0, sum=0; i=100; i+,i+) sum+=i; i , i i=i+2) i 22思 路 : 求 阶 乘 与 求 累 加 的 运 算 处 理 过 程 类 似 , 只 要将 “ ” 变 为 “ ” 。设 置 : , 初 值 为 1, 终 值 为 n( n是 循 环 控 制 终值 , 需 要 从 键 盘 输 入 ) , 初 值 为 1, 每 次 循 环 令 p = p*i 23#include main( ) int i, n; ; printf(Enter n:); scanf(%d, for (i=1; i=n; i+) =

6、; printf(p = n,p); 24 25 26 27 28 29 s=s+t t=1.0/i 30 s=s+t t=1.0/i*flag flag=-flag 31 s=s+t t=1.0/i*flag flag=-flag tt=tt+2 32# include void main() int i , sum=0, x; for (i=0; i0) sum=sum+x; printf(%d,sum); %d, scanf(%d, if(n=1) scanf(%d, max=x; for (i=1; in; i+) scanf(%d, if (max x) max=x; printf(

7、%d, max); x max maxx 循 环 34 35 后 续 语 句 后 续 语 句 后 续 语 句 36 37 m 38问 题 : 能 否 改 写 为 : for (i= 2; i= m/2; i+) if (m%i= 0) printf(No!n); else printf(%d is a prime number! n, m); 循 环 条 件 ?循 环 的 结 束 条 件 ? 39分 析 : 最 大 公 约 数 在 1到 两 个 数 中 较 小 的 那 个 数 之 间 , 因此 可 用 循 环 结 构 实 现 。 循 环 变 量 初 值 为 m和 n中 较 小 数 ,终 值 为

8、 1。 具 体 语 句 : 40 后 续 语 句 后 续 语 句 后 续 语 句 41 42for (n=100; n=200; n+) n能 被 7整 除 T F 终 止 本 次 循 环 输 出 n 输 出 10个 数 T F 换 行 43#include main( ) int n,j=0; for(n=100;n=200;n+) printf(%6d,n); printf( n j=%dn,j); 44(1) while() while() . (2) do do while( ); . while( ); (3) while() do while( ); . (4) for( ; ;)

9、 do while(); while() . 45 46sum = sum + 第 i项 ( i!) for (i=1; i=n; i+) item=i!; sum=sum+item; for (i=1; i=n; i+) item=1; for (j=1; j=i; j+) item=item*j; sum = sum + item; 47#include int main(void) int i, j,n;double item, sum; sum= 0; scanf(“%d“, for(i=1; i=n; i+) item=1; for (j=1; j=i; j+) item=item*

10、j;sum=sum+item; printf(1!+2!+3!+%d!=%en, n,sum); item=1; for (i=1; i=n; i+) for (j=1; j=i; j+) item=item*j; sum = sum + item; 问 题 : 内 层 循 环 的 初 始 化能 否 改 为 : 48for(i=1; i=n; i+) item=1; for (j=1; j=i; j+)item=item*j; sum=sum+item; 分 析 嵌 套 循 环 的 执 行 过 程 : n 外 层 循 环 变 量 i 的 每 个 值 内 层 循 环 变 量 j 变 化 一 个

11、轮 次 ;n 内 外 层 循 环 变 量 不 能 相 同 分 别 用 i 和 j 49如 果 理 解 了 阶 乘 的 含 义 , 该 题 实 际 也 可 用 单 循 环 来 编程 , 程 序 如 何 写 ? sum=0;for (i=1; i=n; i+) item=i!; sum=sum+item; item=1; for (i=1; i=n; i+) item=item*i; sum=sum+item; 5012 43 6 94 8 12 165 10 15 20 256 12 18 24 30 367 14 21 28 35 42 498 16 24 32 40 48 56 64 9 1

12、8 27 36 45 54 63 72 81分 析 : 这 是 一 个 典 型 的 双 重 循 环 问 题 。需 要 两 个 循 环 变 量 i、 j。i j 外 循 环 变 量 i用 于 控 制 输 出 行 数 ,因 此 初 值 为 1, 终 值 为 9。内 循 环 变 量 j用 于 控 制 输 出 列 数 ,因 此 初 值 为 1, 终 值 为 当 前 外循 环 的 i值 ( 为 什 么 ? ) 。 51程 序 : #include main( ) int i, j; for ( i=1; i10; i+ ) for ( j=1; j=i; j+ ) printf (j=i)?%4dn:%

13、4d,i*j); 通 过 条 件 表 达 式 判 断 当 输出 一 行 ( 一 个 内 循 环 结 束 )后 实 现 换 行 输 出 。 52 53 12345 5 4 3 2 112345 % 10 = 5 12345 / 10 = 1234 1234 % 10 = 4 1234 / 10 = 123 123 % 10 = 3 123 / 10 = 12 12 % 10 = 2 12 / 10 = 1 1 % 10 = 1 1 / 10 = 0 结 束循 环 不 变 式 x%10 x=x/10循 环 条 件 x=0 scanf( “%d”, while (x!=0) digit=x%10;

14、x=x/10 ; printf( “%d ”, digit); 思 考 : 用 do-while实 现 ? 54思 路 : Fibonacci数 列 的 前 几 项 是 : 1、 1、 2、 3、 5、 8、 13、21、 34、 。 此 数 列 的 变 化 规 律 是 : 55#include main( ) int i,f1,f2,f3; f1=f2=1; printf(n%8d%8d,f1,f2); for (i=3; i= ; i+) f3=f1+f2; f1=f2; f2=f3; printf(%8d,f3); f1=1, f2=1并 输 出for (i=3; i=20; i+) f

15、3=f2+f1 f1=f2, f2=f3 输 出 f3 T F 换 行 56一 个 数 的 因 子 ( 除 了 这 个 数 本 身 ) 之 和 等 于该 数 本 身 。的 因 子 是 1、 2、 3, 因 子 和 1+2+3 57#include main( ) int i,j,s; (i=2; i=1000; i+) s=0; (j=1; ji; j+) if (i%j=0) s+=j; if (i=s) printf(%6dn,s); for(i=2;i=1000; i+) s=0 for (j=1; ji; j+) i%j=0 T F s=s+j i=s T F i是 完 数 58 59

16、for (c5=1; c520; c5+) for (c2=1; c250; c2+) for (c1=1;c1100; c1+) c5*5+c2*2+c1=100 T F 输 出 c5、 c2、 c1#include void main() int c1,c2,c5,i; i=0; for(c5=1; c520; c5+) for(c2=1; c250; c2+)for(c1=1; c1100; c1+) if(c5*5+c2*2+c1=100) printf(5分 硬 币 =%d枚 ,2分 硬 币 =%d枚 ,1分 硬 币 =%d枚n,c5,c2,c1); i+; printf(一 共 有 %d种 换 法 。 n,i); 60* * * * 61#include main( ) int i,j; for (j=1; j=i; j+) printf( ); for (j=1;j=8-(2*i-1);j+) printf(*); printf(n); for (i=1; i=4; i+) for (j=1; j=i; j+) 输 出 一 个 空 格 for (j=1; j ); printf(%fn,x);x赋 初 值x0=x计 算 f计 算 f1 计 算 x=x0-f/f1当 |x-x0|10-6时输 出 x 66

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!