1、循环嵌套循环嵌套循环体循环体循环体循环体非零非零非零非零零零零零表达式表达式表达式表达式 1、while 语句 常称为“当型当型”循环语句 循环体循环体循环体循环体非零非零非零非零零零零零表达式表达式表达式表达式2、do-while语句 常称为“直到型直到型”循环语句表达式表达式表达式表达式1 1表达式表达式表达式表达式2 2循环体语句循环体语句循环体语句循环体语句表达式表达式表达式表达式3 3循环变量循环变量赋初值赋初值循环终止循环终止条件条件循环变量循环变量控制控制for(for(表达式表达式1 1;表达式;表达式2 2;表达式;表达式3 3)循环体循环体 3、for 语句语句执行过程(1
2、)执行“控制变量初始化语句”,使控制变量获得一个初值。(2)判断控制变量是否满足“条件表达式”,若满足条件则执行一遍循环体,否则结束整个for语句,继续执行for循环下面的句子。(3)根据增量表达式,计算出控制变量所得到的新值(4)自动转到第(2)步。break语句一般形式:break;break;功能:跳出所在多分支switch语句跳出所在的while、do-while、for循环语句(提前结束循环)。break语句和语句和continue语句语句计算计算计算计算e1e1e2e2语句语句语句语句非非非非0 00 0e e非非非非0 0语句语句语句语句计算计算计算计算e3e30 0breakb
3、reak语句语句语句语句循循循循环环环环体体体体0 0计算计算计算计算e1e1e2e2语句语句语句语句非非非非0 00 0e e非非非非0 0语句语句语句语句计算计算计算计算e3e3continuecontinue语句语句语句语句continue语句一般形式:continue;continue;功能:提前结束本次循环体的执行,接着进行下一次循环条件的判别。break语句和语句和continue语句语句例例:求:求1+2+3+4+5+100。#include#include main()main()int i,sum=0;int i,sum=0;i=1;i=1;while(i=100)while
4、(i=100)sum=sum+i;sum=sum+i;i+;i+;printf(%d,sum);printf(%d,sum);循环初值循环初值循环初值循环初值循环终值循环终值循环终值循环终值循环变量增值循环变量增值循环变量增值循环变量增值 循环条件循环条件循环条件循环条件循环体循环体循环体循环体回顾求2324210之和For循环输入一个数,判断是否是质数For循环#includeusingnamespacestd;intmain()inti,n,m,ans;cinnm;i=n;ans=0;while(i=m)ans+=i;i+;coutansendl;return0;输入:1020输出:_16
5、5程序阅读10嵌套for 循环如果一个for循环出现在另一个for循环中,则称它为嵌套循环for(i=1;imax1;i+)for(j=0;j =max2;j+)外面的循环每循环外面的循环每循环一次,嵌套在里面一次,嵌套在里面的循环都会从的循环都会从0到到max2完全循环一遍完全循环一遍请用循环嵌套打印:10*10的“*”1.尝试使用循环打印一排*2.加入循环嵌套:内层循环控制 打印一排*外层循环控制 打印一个换行符把*改为j看j是如何变化的请用循环嵌套打印:正三角的“*”加入循环嵌套:内层循环控制 打印一排*(每排*数量增加1)外层循环控制 打印一个换行符把*改为j看j是如何变化的请用循环嵌
6、套打印:倒三角的“*”加入循环嵌套:内层循环控制 打印一排*(每排*数量减少1)外层循环控制 打印一个换行符把*改为j看j是如何变化的请用循环嵌套打印:右倒三角的“*”加入两个内层循环(并列):一个内层循环输出空格(每层增加1)一个内层循环输出星号(每层减少1)把*改为j看j是如何变化的请用循环嵌套打印:右正三角的“*”加入两个内层循环(并列):一个内层循环输出空格(每层减少1)一个内层循环输出星号(每层增加1)把*改为j看j是如何变化的161 12 23 34 45 56 67 78 89 91 12 24 43 36 69 99 918182727363645455454636372728
7、181.循环循环嵌套,输出九九表。嵌套,输出九九表。iji=9i=9输出输出输出输出i*ji*j假假假假(0)(0)真真真真(非非非非0)0)i=1i=1j+j+j=1j=1j=ij=i真真真真(非非非非0)0)假假假假(0)(0)i+i+外循环外循环外循环外循环内循环内循环内循环内循环*循环循环循环循环嵌套,嵌套,嵌套,嵌套,输出等腰三角形输出等腰三角形输出等腰三角形输出等腰三角形提示提示提示提示:uu 行的控制行的控制行的控制行的控制 i i:1 19 9uu *的个数的个数的个数的个数j j与当前行的关系与当前行的关系与当前行的关系与当前行的关系:j=2*i-1j=2*i-1uu *前面
8、的空格前面的空格前面的空格前面的空格k k与行的关系与行的关系与行的关系与行的关系:开始时开始时开始时开始时,第一行有第一行有第一行有第一行有8 8个空格个空格个空格个空格 每多一行每多一行每多一行每多一行,少一个空格少一个空格少一个空格少一个空格k=9-ik=9-i一一个炊事员上街采购,用个炊事员上街采购,用500500元钱买了元钱买了9090只鸡,其中母鸡一只只鸡,其中母鸡一只1515元元,公鸡一只公鸡一只1010元,小鸡一元,小鸡一只只5 5元,正好把钱买完。问母鸡,公鸡,小鸡各买了多少只元,正好把钱买完。问母鸡,公鸡,小鸡各买了多少只?【分析】【分析】设母鸡i只,公鸡j只,则小鸡为90
9、-i-j只,则15*i+10*j+(90-i-j)*5=500,显然一个方程求两个未知数是不能直接求解。必须组合出所有可能的i,j值,看是否满足条件。这里i的值可以是0到33,j的值可以0到50。20课堂练习 百钱买百鸡:鸡翁1,钱值5;鸡母1,钱值3;鸡雏3,钱值1;何以百钱买百鸡?有30个男人女人和小孩同在一家饭馆进餐,共花了五十先令,其中男宾3先令,女宾2先令,小孩1先令。试编程求出男人女人小孩各多少人?#includeusingnamespacestd;constintc=2009;intmain()intn,p,s,i,j,t;cinnp;s=0;t=1;for(i=1;i=n;i+
10、)t=t*p%c;for(j=1;j=i;j+)s=(s+t)%c;coutsendl;return0;输入:112输出:782程序阅读思考题:选人。一个小组共五人,分别为A、B、C、D、E。现有一项任务,要他们中的3个人去完成。已知:(1)A、C不能都去;(2)B、C不能都不去;(3)如果C去了,D、E就只能去一个,且必须去一个;(4)B、C、D不能都去;(5)如果B去了,D、E就不能都去。编程找出此项任务该由哪三人去完成的所有组合。(1)A、C不能都去!(a&c)(2)B、C不能都不去;!(b=0&c=0)(3)如果C去了,D、E就只能去一个,且必须去一个;c&(de)(4)B、C、D不能
11、都去;!(b&c&d)(5)如果B去了,D、E就不能都去。b&(!(d&e)逻辑推理题一位法官在审理一起盗窃案时,对涉及到的四名嫌疑犯A、B、C、D进行了审问。四人分别供述如下:A:“罪犯在B、C、D三人之中。”B:“我没有作案,是C偷的。”C:“在A和D中间有一个是罪犯。”D:“B说的是事实”经过充分的调查,证实四人中只有两人说了真话,并且罪犯只有一个。请确定真正的罪犯。A:“罪犯在B、C、D三人之中。”as=(b+c+d=1)B:“我没有作案,是C偷的。”bs=(!b&c)C:“在A和D中间有一个是罪犯。”cs=(a+d=1)D:“B说的是事实”ds=bs逻辑推理题作业:完成OJ平台上1.5所有题目(共45题)http:/
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100