循环结构程序设计ppt课件_第1页
循环结构程序设计ppt课件_第2页
循环结构程序设计ppt课件_第3页
循环结构程序设计ppt课件_第4页
循环结构程序设计ppt课件_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第3 3讲循环构造程序设计讲循环构造程序设计;循环的定义循环的定义p反复执行一样的语句序列反复执行一样的语句序列条件条件A真真假假条件条件A真真假假;while循环循环p格式:格式:pwhile(表达式表达式)pp语句序列语句序列p表达式表达式语句序列语句序列非非00p语句序列称为循环体,当为一条语句时,表示复合语句的语句序列称为循环体,当为一条语句时,表示复合语句的可以省略。可以省略。p表达式可以为任何类型表达式可以为任何类型p先判别,后执行,假设条件不成立,有能够一次也不执行。先判别,后执行,假设条件不成立,有能够一次也不执行。p语句序列中必需有改动语句序列中必需有改动whilewhil

2、e后面括号的表达式值的语句,否那么有能够死循后面括号的表达式值的语句,否那么有能够死循环。环。;p 问题描画问题描画:笑笑作为数学课代表,每次考试后,数学教师都会让他统笑笑作为数学课代表,每次考试后,数学教师都会让他统计成果,教师并不关怀详细某个人的成果,而只关怀参与考试的人数、计成果,教师并不关怀详细某个人的成果,而只关怀参与考试的人数、平均成果、最低分和最高分。平均成果、最低分和最高分。p 输入要求输入要求:第第1行输入行输入T,表示组数,第二行输入一些,表示组数,第二行输入一些 整数整数,表示学生的表示学生的成果成果,每个数之间用一个空格分开,每个数之间用一个空格分开,-1表示输入终了。

3、表示输入终了。p 输出要求输出要求:占占4行行,第一行表示学生人数第一行表示学生人数n,第二行表示最高分,第三行表第二行表示最高分,第三行表示最低分,第四行表示平均分,其中只需平均分是小数只保管一位示最低分,第四行表示平均分,其中只需平均分是小数只保管一位小数,其他为整数小数,其他为整数 p 输入实例:输入实例:1p 50 90 87 67 84 99 56 74 82 94 -1p 输出实例:输出实例:10p 100p 50p 78.3;回文数回文数p 问题描画:输入一个整数,判别一个该数能否为回文数。问题描画:输入一个整数,判别一个该数能否为回文数。p 输入要求:输入一系列的整数输入要求:

4、输入一系列的整数n,n100000000p 输出要求:假设是回文数输出输出要求:假设是回文数输出Yes,假设不是回文数输出,假设不是回文数输出Nop 输入样例:输入样例:1234p 121p -12321p 100p 输出样例:输出样例:Nop Yesp Yesp Nop ;素数因子素数因子p 问题描画:输入一个整数,输出它的一切素数因子问题描画:输入一个整数,输出它的一切素数因子p 输入要求:输入一系列的整数输入要求:输入一系列的整数0,1,-1除外,每行一个除外,每行一个p 输出要求:输出一切的素数因子,每个因子之间用输出要求:输出一切的素数因子,每个因子之间用1个空格分个空格分开,最后一

5、个因子后面没有空格开,最后一个因子后面没有空格p 输入样例:输入样例: 8p 30p 125p 输出样例:输出样例:2 2 2p 2 3 5p 5 5 5;#includeusing namespace std;int main()int m,k=2;cinm;if(m0)cout-;m=-m;while(km)if(m%k=0)coutk ;m=m/k;elsek+;coutmendl;return 0;6174数字黑洞数字黑洞p 问题描画:恣意一个每位数字不完全一样的问题描画:恣意一个每位数字不完全一样的4位正整数,位正整数,将各位上数字重新组合成一个最大数和一个最小数相减,将各位上数字重

6、新组合成一个最大数和一个最小数相减,反复这个过程,必定得到反复这个过程,必定得到6174。p 输入要求:输入一系列的输入要求:输入一系列的4位正整数,占一行。位正整数,占一行。p 输出要求:占一行,最终得到输出要求:占一行,最终得到6174的变换次数。的变换次数。p 输入样例:输入样例:1234p 1000p 6174p 输出样例:输出样例:3p 5p 0;p爱因斯坦走楼梯:有一条长阶梯,假设每爱因斯坦走楼梯:有一条长阶梯,假设每步跨步跨2阶,那么最后剩阶,那么最后剩1阶;假设每步跨阶;假设每步跨3阶,阶,那么最后剩那么最后剩2阶;假设每步跨阶;假设每步跨5阶,那么最阶,那么最后剩后剩4阶;假

7、设每步跨阶;假设每步跨6阶,那么最后剩阶,那么最后剩5阶;阶;假设每步跨假设每步跨7阶,那么最后正好一阶不剩;阶,那么最后正好一阶不剩;问该楼梯最少有多少阶?问该楼梯最少有多少阶?;#includeusing namespace std;int main()int n=7;while(n%2!=1)|(n%3!=2)|(n%5!=4)|(n%6!=5) n=n+7;coutnendl;return 0;#includeusing namespace std;int main()int n=7;while(!(n%2=1)&(n%3=2)&(n%5=4)&(n%6=5)

8、n=n+7;coutnendl;return 0;do while 循环语句循环语句p格式:格式:pdopp语句序列语句序列p while(表达式表达式);表达式表达式语句序列语句序列非非00;最大公约数和最小公倍数最大公约数和最小公倍数p 问题描画:从键盘上输入两个整数,求它们的最大公约数和最小问题描画:从键盘上输入两个整数,求它们的最大公约数和最小公倍数。公倍数。p 输入要求:每行输入两个整数,每个整数之间用一个空格分开。输入要求:每行输入两个整数,每个整数之间用一个空格分开。p 输出要求:第一行输出最大公约数,第二行输出最小公倍数输出要求:第一行输出最大公约数,第二行输出最小公倍数p 输

9、入样例:输入样例:3 6p 24 13p 输出样例:输出样例:3p 6p 1p 312;开始开始输入输入a,br=a%ba=bb=rr!=0输出输出a结束结束非非00;p 问题描画:计算与正整数问题描画:计算与正整数n相等的二进制代码中有相等的二进制代码中有1和和0的的个数。个数。p 输入要求:输入一些正整数,每个占一行输入要求:输入一些正整数,每个占一行p 输出要求:占两行,第一行是输出要求:占两行,第一行是1的个数,第二行是的个数,第二行是0的个数。的个数。p 输入样例:输入样例:8p 93p 输出样例:输出样例:1p 3p 5p 2;Cantor表表问题描画:现代数学的著名证明之一是问题

10、描画:现代数学的著名证明之一是Georg Cantor证明了有理数是可证明了有理数是可以枚举的。他利用下面一张表来证明这一命题:以枚举的。他利用下面一张表来证明这一命题:1/1 1/2 1/3 1/4 1/5 2/1 2/2 2/3 2/43/1 3/2 3/3 4/1 4/2 5/1 我们以我们以Z字型给上表每一项编号字型给上表每一项编号 。第。第1项是项是1/1 ,然后第,然后第2项是项是1/2,2/1,3/1,2/2.输入描画:整数输入描画:整数N1N10000000输出描画:表中的第输出描画:表中的第N项项 样例输入:样例输入:7样例输出:样例输出:1/4;#includeusing

11、namespace std;int main()int n,i,j;cinn;i=0;/斜线序号j=n;/第n项在某行的位置doi+;j=j-i;while(j0);j=j+i;if(i%2=0) coutj/i+1-jendl;else couti+1-j/jendl;return 0;角谷猜测角谷猜测p 问题描画:定义这样一个整数函数问题描画:定义这样一个整数函数f(n),当,当n是偶数时,是偶数时,f(n)=n/2;当;当n是奇数时,是奇数时,f(n)=(3n+1)/2。这个猜测是说:。这个猜测是说:对于恣意的整数对于恣意的整数n,计算,计算f(n),f(f(n),f(f(f(n),.,

12、假设干,假设干步之后,总会得到步之后,总会得到1。对于给定的。对于给定的n,求出数字序列中第一,求出数字序列中第一次出现次出现1的步数。的步数。p 输入要求:输入一些正整数输入要求:输入一些正整数n,每个正整数占一行。,每个正整数占一行。p 输出要求:占一行,输出对应输出要求:占一行,输出对应n得到得到1的步数。的步数。p 输入样例:输入样例:5p 10p 输出样例:输出样例:4p 5;pwhile语句和语句和dowhile语句语句 比较比较pwhile语句是先判别后执行,只需不满足条件,循环语句是先判别后执行,只需不满足条件,循环体语句根本不会执行体语句根本不会执行 pdowhile语句是先

13、执行后判别,不论条件能否满足,语句是先执行后判别,不论条件能否满足,循环体语句总会执行一次循环体语句总会执行一次 #include using namespace std;int main() int i,sum=0; cini; while(i=10) sum+=i;i+; coutsumendl; return 0;#include using namespace std;int main() int i,sum=0; cini; do sum+=i; i+; while(i=10); coutsumendl; return 0;for循环语句循环语句p 格式:格式:p for (;) p

14、 p 语句序列语句序列p 表达式表达式2表达式表达式1非非00表达式表达式3语句序列语句序列语句序列称为循环体。当语句序列只需单条语句,表示复合语句的可以省略。表达式1普通为赋值表达式,给控制变量赋初值;假设省略表达式1,这时for语句为如表达式2普通为关系表达式或逻辑表达式,称为循环控制条件表达式3普通为赋值表达式,给控制变量增量或减量for;。 ;转移语句转移语句pcontinue语句语句p方式:方式:continue;p功能:终了本次循环,开场下一次循环功能:终了本次循环,开场下一次循环pcontinue只能用在循环构造中,而不能用于只能用在循环构造中,而不能用于其它控制构造其它控制构造

15、 ;表表 达达 式式 1表表 达达 式式 2 语语 句句 序序 列列 1语语 句句 序序 列列 2后后 续续 语语 句句非非 0非非 000continue#includeusing namespace std;int main() int k; for(k=100;k=200;k+) if(k%3=0) continue;coutk“ “; return 0;pbreak语句语句 p格式:格式:break;p功能:跳出功能:跳出switch构造或终了本层循环。构造或终了本层循环。p阐明:阐明:break语句只能用于语句只能用于switch或循环构造中或循环构造中 ;表达式表达式1表达式表达式

16、2 语句序列语句序列1语句序列语句序列2后续语句后续语句非非0非非000break#includeusing namespace std;#define PI 3.1415926int main() int r; double area; for(r=1;r100.0) break;coutareaendl; return 0;阶乘之和阶乘之和问题描画:求非负整数的阶乘之和问题描画:求非负整数的阶乘之和输入要求:输入一个非负整数输入要求:输入一个非负整数n(n13)n(n13),占一行,占一行输出要求:占一行,阶乘的和输出要求:占一行,阶乘的和输入样例:输入样例:0 0 5 5 12 12输出

17、样例:输出样例:1 1 154 154 522956314 522956314 ;#include#includeusing namespace std;int main() int i,sum,p,n; while(cinn) sum=0; p=1;if(n0) exit(0); for(i=1;i=n;i+) p=p*i;sum=sum+p; coutsum+1endl; return 0;分数数列分数数列p问题描画:知分数数列问题描画:知分数数列 2/1,-3/2,5/3,-8/5, 对于输入的正整数对于输入的正整数n,输出对应项的分数。,输出对应项的分数。p输入要求:输入一些输入要求:

18、输入一些 正整数正整数n(n50),分别占一行。,分别占一行。p输出要求:占一行,表示分数数列中的对应项。输出要求:占一行,表示分数数列中的对应项。p输入样例:输入样例:3p 26p输出样例:输出样例:5/3p -317811/196418 ;#includeusing namespace std;int main()int a=2,b=1,i;int n;cinn;for(i=2;i=n;i+)a=a+b;b=a-b;if(n%2=0) cout-1*a/bendl;else couta/b4),每个数占一行。,每个数占一行。p输出要求:占一行,两个素数的和。输出要求:占一行,两个素数的和。

19、p输入样例:输入样例:4p 20p输出样例:输出样例:2+2p 3+17;开开始始输输入入np=1p=p+1q=n-pp是是素素数数q是是素素数数p_flag=1p_flag=0q_flag=1q_flag=0p_flag*q_flag=0输输出出p和和q结结束束非非00非非00非非00;#include#include#includeusing namespace std;int main()int i,p,q,n,p_flag,q_flag;while(cinn)if(n%2=1)|n4) /cout数据输入出错n; exit(0);p=1;dop=p+1;q=n-p;p_flag=1;for(i=2;i=s

温馨提示

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

评论

0/150

提交评论