版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第5章 循环结构程序设计n 循环语句n break 和 continue 语句n 循环嵌套5.1 循环语句n问题 打印整数110 打印整数1100 打印整数1nprintf(%d, 1);printf(%d, 2);printf(%d, 10);i=1;printf(%d, i); i+;printf(%d, i); i+;printf(%d, i); i+;i=1;while(i=10) printf(%d, i); i+;while 语句 while (表达式) 语句; 语 句表达式非00i=1;while(i sum sum+2 sum sum+3 sum sum+10 sumsum=s
2、um+?sum=0;i=1;while(i=10) sum=sum+i; i+;循环不变式for 语句for (exp1; exp2; exp3) 语句; exp3exp2非00循环条件 exp1 语 句循环体 while (表达式) 语句; 语 句表达式非00for (exp1; exp2; exp3) 语句; exp3exp2非00 exp1 语 句exp1;while(exp2) 语句; exp3;while 和 forwhile 和 forwhile (表达式) 语句;for (exp1; exp2; exp3) 语句;exp1;while(exp2 语句; exp3;sum=0;i=
3、1;while(i=10) sum=sum+i; i+;sum=0;for(i=1; i=10; i+) sum=sum+i;程序举例例T1-1 求1+2+3+4+ n例T1-2 求1+1/2+1/3+1/4+ 1/n例T1-3 求1-1/2+1/3-1/4+ 1/n例T1-4 求1-1/3+1/5-1/6+ 前n项之和例T2-1 求n!例T2-2 求xn例T3-1 求1-1/3+1/5-1/7+ ,直到最后1项的绝对值10-5例T4-1 输入100个整数,求其中正数之和例T4-2 输入一个正整数n, 再输入n个数,输出最大值例T5 输出Fibonacci序列前20个数例T1-1 求1+2+3
4、+4+ n算法:i =1 to n s=s+t t+ i+程序段:s=0;for(i=1; i=n; i+) s=s+i;算法:i =1 to n s=s+i i+例T1-2 求1+1/2+1/3+ 1/n算法:i =1 to n s=s+t t=1.0/i i+程序段:s=0;for(i=1; i=n; i+) s=s+1.0/i;算法:i =1 to n s=s+t t+ i+例T1-3 求1-1/2+1/3-1/4+ 1/ni =1 to n s=s+t t=1.0/i i+程序段:s=0; flag=1;for(i=1; i=n; i+) s=s+1.0/i*flag; flag=-f
5、lag;算法:i =1 to n s=s+t t=1.0/i*flag flag=-flag i+ 例T1-4 求1-1/3+1/5- 前n项和算法:i =1 to n s=s+t t=1.0/i*flag flag=-flag i+程序段:s=0;flag=1;tt=1;for(i=1; i=n; i+) s=s+1.0/tt*flag; tt+=2; flag=-flag;算法:i =1 to n s=s+t t=1.0/tt*flag flag=-flag tt=tt+2i+例T2-1 求n!算法:i =1 to n f=f*t t+ i+程序段:f=1;for(i=1; i=n; i+
6、) f=f*i;算法:i =1 to n f=f*i i+例T2-2 求xn算法:i =1 to n f=f*t t+ i+程序段:f=1;for(i=1; i=n; i+) f=f*x;算法:i =1 to n f=f*t t=x i+例T3-1 求1-1/3+1/5-直到最后1项的绝对值= 1E-5) s = s+t; flag = -flag; tt += 2; t = 1.0/tt*flag;i =1 to n s=s+t t=1.0/tt*flag flag=-flag tt=tt+2i+算法:while |t|=1E-5 s=s+t flag=-flag tt=tt+2 t=1.0
7、/tt*flag 例T4-1 输入100个整数,求其中正数之和# include void main() int i , sum=0, x; for (i=0; i0) sum=sum+x; printf(%d,sum); 例47 求最大值输入3个数,输出其中的最大值。#include void main( ) int a, b, c, max; printf(input a, b, c:n); scanf(%d%d%d, &a, &b, &c); max = a; if(max b) max = b; if(max =1) scanf(%d, &x); max
8、=x; for (i=1; in; i+) scanf(%d, &x); if (max x) max=x; printf(%d, max); x maxmaxx例T5 输出Fibonacci序列前20个数1, 1, 2, 3, 5, 8, x1 x2 t x1 x2 t程序段:x1=x2=1;printf(%d %d, x1, x2);for(i=1; i=18; i+) t=x1+x2; printf(%d , t); x1=x2; x2=t;x1=x2=1;t=x1+x2;x1=x2;x2=t;do-while 语句do 语句while (表达式);i=1;do printf(%
9、d, i); i+; while(i0); printf(sum=%d, sum);void main( ) int x, sum=0; scanf(%d, &x); while (x0) sum + = x; scanf(%d, &x); ; printf(sum=%d, sum);输入 1 2 5 -10输入 -10 1 2 5sum-x5.2 break 和 continue 语句#include stdio.hvoid main( ) char c; int i=0; for (i=0; i10;i+) c=getchar(); if (c=n) break; putc
10、har(c); 循环何时结束?循环何时结束? c=getchar(); for (i=0; i= 10 | c = n) break; putchar(c); 1break 流程结束循环while(exp) 语句1 if (expb) break; 语句2非00 exp 语句10 expb 语 句2循环体非0 continue 流程跳过continue后面的语句,继续下一次循环while(exp) 语句1 if (expc) continue; 语句2非00 exp 语句10 expb 语 句2循环体非0break 和 continue#include stdio.hvoid main( )
11、char c; int i=0; for (i=0; i10;i+) c=getchar(); if (c=n) break; putchar(c); #include stdio.hvoid main( ) char c; int i=0; for (i=0; i10;i+) c=getchar(); if (c=n) continue; putchar(c); 输入:abc efgh 123 输出:abcefgh1输出:abc例T6 输入m,判断m是否为素数算法:除了1和m,不能被其它数整除。m %2 %3 %4 %5 不是素数 | =0 =0是素数 & !=0 !=0 程序段:n
12、=sqrt(m);for(i=2; in) printf(yesn)else printf(non”);例T7 将一个正整数逆序输出确定:循环条件和循环不变体 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=0scanf( “%d”, &x);while (x!=0) digit =
13、x %10; x = x/10 ; printf( “%d ”, digit);例4-10# include void main( ) char c;printf(Please input a character:n); c = getchar(); if(c=a & c =A & c =0 & c = 9) printf(This is a digit.n); else printf(This is an other character. n);输入一行字符,统计英文字母、数字和其他字符。例T8 输入一行字符,统计英文字母、数字和其他字符# include void
14、main( ) char c; int letter=0, digit=0, other=0; c = getchar(); while(c!=n) if(c=a & c =A & c =0 & c = 9) digit+; else other+; c=getchar(); printf(%d %d %d, letter, digit, other); while(c = getchar()!=n)5.3 循环嵌套 while (表达式) 语句; 循环语句例T9-1.1 1!+2!+n! s=0;for(k=1; k=n; k+) s=s+f; f=1; /* n!
15、*/for(i=1; i=n; i+) f=f*i;f=1;for(i=1; i=k; i+) f=f*i;算法:k=1 to n s = s + f f = k!k+例T9-1.2 1!+2!+n! 算法:k=1 to n s = s + f f = k! k+s=0;f=1;for(k=1;k=n;k+) f=f*k; s=s+f; 算法:k =1 to n s = s+f f = f*k k+例T9-2 兑换零钱将10元钱换成5角、2角、1角的零钱(至少各一枚),列出所有可能的方案。c5: 5角的数量, 1, 20)c2: 2角的数量, 1, 50)c1: 1角的数量, 1, 100)5
16、*c1+2*c2+c5=100将10元钱换成5角、2角、1角的零钱c5: 5角的数量, 1, 20)c2: 2角的数量, 1, 50)c1: 1角的数量, 1, 100)5*c5+2*c2+c1=100for (c5=1; c520; c5+) for (c2=1; c250; c2+) for (c1=1; c1100; c1+) if (5*c5+2*c2+c1=100 ) printf(%d %d %dn, c5, c2, c1);c5=1 c2=1 c1=1 992 492 19将10元钱换成5角、2角、1角的零钱c5: 5角的数量, 1, 20)c2: 2角的数量, 1, 50)c1: 1角的数量, 1, 100)5*c5+2*c2+c1=1000for (c5=1; c520; c5+) for (c2=1; c250; c2+) for (c1=1; c1100; c1+) if (5*c5+2*c2+c1=1000 ) printf(%d %d %dn, c5, c2, c1);for (c5=1; c520; c5+) for (c2=1; c250; c2+) printf(%d %d %dn, c5, c2, 1000- 5*c5+2*c2);例T9-3 输出100200间所有素数算法:m =100 to 200 if m是素数 print mn=sqrt(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026国网甘肃省高校毕业生提前批招聘(约450人)笔试模拟试题浓缩500题含答案详解(突破训练)
- 2026秋季国家管网集团华南公司(广东省管网公司)高校毕业生招聘考试参考题库(浓缩500题)含答案详解(能力提升)
- 2026秋季国家管网集团华南公司(广东省管网公司)高校毕业生招聘考试备考试题(浓缩500题)附答案详解ab卷
- 2026国网湖南省电力公司高校毕业生提前批招聘笔试参考题库浓缩500题及答案详解(名师系列)
- 2026秋季国家管网集团建设项目管理公司高校毕业生招聘考试参考题库(浓缩500题)带答案详解(能力提升)
- 2026秋季国家管网集团储运技术发展有限公司高校毕业生校园招聘考试参考试题(浓缩500题)含答案详解(综合卷)
- 2026秋季国家管网集团华南公司(广东省管网公司)高校毕业生招聘考试备考题库(浓缩500题)及答案详解【名校卷】
- 2026秋季国家管网集团福建公司高校毕业生招聘笔试备考试题(浓缩500题)含答案详解(精练)
- 2026国家管网集团高校毕业生招聘考试备考试题(浓缩500题)及参考答案详解(b卷)
- 2026年洛阳市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(培优)
- 创新驱动发展:江苏省高技术产业创新模式与发展路径研究
- 实验诊断学试题库(附答案)
- 为浪漫而生的诗人徐志摩
- 2025至2030电力系统模拟器行业产业运行态势及投资规划深度研究报告
- 2025年云南白药集团招聘笔试备考题库(带答案详解)
- 不良资产知识课件
- 药店人员培训管理制度
- 挂篮施工安全教育题库
- 2025年4月自考00012英语一试题及答案
- 公司电动车车棚管理制度
- 突发公共事件对转化进程的冲击效应-洞察阐释
评论
0/150
提交评论