第4章循环结构c++版资料资料

上传人:w****i 文档编号:98189985 上传时间:2019-09-09 格式:PPT 页数:80 大小:392.50KB
返回 下载 相关 举报
第4章循环结构c++版资料资料_第1页
第1页 / 共80页
第4章循环结构c++版资料资料_第2页
第2页 / 共80页
第4章循环结构c++版资料资料_第3页
第3页 / 共80页
第4章循环结构c++版资料资料_第4页
第4页 / 共80页
第4章循环结构c++版资料资料_第5页
第5页 / 共80页
点击查看更多>>
资源描述

《第4章循环结构c++版资料资料》由会员分享,可在线阅读,更多相关《第4章循环结构c++版资料资料(80页珍藏版)》请在金锄头文库上搜索。

1、第四章 循环结构,第一节 for语句,第二节 while语句,第三节 do-while语句,第四节 循环嵌套,第一节 for语句,一、语句格式 格式1,说明:语句1是for循环语句的循环体,它将在满足条件的情况下被重复执行。 格式2,说明:循环体部分由多个语句构成,应由一对花括号括起来,构成一个语句块的形式程序风格提示:写for循环语句时,循环体的语句相对于for缩进两格。,第一节 for语句,二、语句执行过程 for语句的执行过程可由以下4步来描述。 (1)执行“控制变量初始化语句”,使控制变量获得一个初值。 (2)判断控制变量是否满足“条件表达式”,若满足条件则执行一遍循环体,否则结束整个

2、for语句,继续执行for循环下面的句子。 (3)根据增量表达式,计算出控制变量所得到的新值 (4)自动转到第(2)步。,第一节 for语句,三、语句格式举例 (1)将控制变量从1变到100,增量为1 for(i=1;i=1;-i) (3)控制变量从7变到77,增量为7 for(i=7;i=2;i-=2) (5)按所示数列改变控制变量值:99、88、77、66、55、44、33、22、11、0,增量为-11 for(int j=99;j=0;j-=11) (6)控制变量i和j共同进行循环控制,i从1变到99,j从2变到100,增量均为2。 for(int i=1,j=2;i=99&j=100;

3、i+=2,j+=2) 需要说明的是:可以在for循环“ 控制变量初始化语句”中声明变量(如上面最后3个例子),这些变量只在for循环结构中有效,离开了该for结构,变量就无效了。,第一节 for语句,例4.1 输出1100之间所有偶数。 #include using namespace std; int main () for (int i=2; i using namespace std; int main () int sum=0; for (int i=1; i=100 ; +i) sum+=i; cout sum; return 0; ,第一节 for语句,例4.3 利用for循环计算

4、n!的值。 分析:n!1*2*3*n #include using namespace std; int main () long long s; /Noip2010开始C+语言中long long类型允许使用 int n; /n不能定义为long long,否则for语句死循环 s=1; scanf(“%d“, 【说明】: 当n=13时,s值超过了int类型的表示范围。还有一种比int更大的类型,称为long long,它的表示范围是-263263-1,比-10191019略窄,而我们一直使用的int范围是-231231-1,只比-2*1092*109略宽。 输入输出long long也可以

5、借助于printf和scanf语句,但对应的占位符却是和平台与编译器相关的:在linux中,gcc很统一的用%lld;在windows中,MinGW的gcc和VC6可用%I64d;高版本编译器下windows可以使用%lld。,第一节 for语句,例4.4 利用for循环,分别计算1100中奇数的和、偶数的和。 #include using namespace std; int main ( ) int jssum=0; int ossum=0; for (int js=1,os=2;js=99 说明: 我们也可以在for循环初始化或增值表达式部分中放一条以上的语句,中间用逗号隔开。,【上机练

6、习】,1.求平均年龄【1.5编程基础之循环控制01】 班上有学生若干名,给出每名学生的年龄(整数),求班上所有学生的平均年龄,保留到小数点后两位。 输入: 第一行有一个整数n(1= n = 100),表示学生的人数。其后n行每行有1个整数,表示每个学生的年龄,取值为15到25。 输出: 输出一行,该行包含一个浮点数,为要求的平均年龄,保留到小数点后两位。 样例输入: 2 18 17 样例输出: 17.50,【上机练习】,2.均值【1.5编程基础之循环控制02】 给出一组样本数据,包含n个浮点数,计算其均值,精确到小数点后4位。 输入: 输入有两行,第一行包含一个整数n(n小于100),代表样本

7、容量;第二行包含n个绝对值不超过1000的浮点数,代表各个样本数据。 输出: 输出一行,包含一个浮点数,表示均值,精确到小数点后4位。 样例输入: 2 1.0 3.0 样例输出: 2.0000,【上机练习】,3.求整数的和与均值【1.5编程基础之循环控制03】 读入n(1=n=10000)个整数,求它们的和与均值。 输入: 输入第一行是一个整数n,表示有n个整数。 第2n+1行每行包含1个整数。每个整数的绝对值均不超过10000。 输出: 输出一行,先输出和,再输出平均值(保留到小数点后5位),两个数间用单个空格分隔。 样例输入: 4 344 222 343 222 样例输出: 1131 28

8、2.75000,【上机练习】,4.最高的分数【1.5编程基础之循环控制04】 孙老师讲授的计算概论这门课期中考试刚刚结束,他想知道考试中取得的最高分数。因为人数比较多,他觉得这件事情交给计算机来做比较方便。你能帮孙老师解决这个问题吗? 输入: 输入两行,第一行为整数n(1 = n 100),表示参加这次考试的人数.第二行是这n个学生的成绩,相邻两个数之间用单个空格隔开。所有成绩均为0到100之间的整数。 输出: 输出一个整数,即最高的成绩。 样例输入: 5 85 78 90 99 60 样例输出: 99,【上机练习】,5.最大跨度值【1.5编程基础之循环控制05】 给定一个长度为n的非负整数序

9、列,请计算序列的最大跨度值(最大跨度值 = 最大值减去最小值)。 输入: 一共2行,第一行为序列的个数n(1 = n = 1000),第二行为序列的n个不超过1000的非负整数,整数之间以一个空格分隔。 输出: 输出一行,表示序列的最大跨度值。 样例输入: 6 3 0 8 7 5 9 样例输出: 9,【上机练习】,6.奥运奖牌计数【1.5编程基础之循环控制06】 2008年北京奥运会,A国的运动员参与了n天的决赛项目(1n17)。现在要统计一下A国所获得的金、银、铜牌数目及总奖牌数。输入第1行是A国参与决赛项目的天数n,其后n行,每一行是该国某一天获得的金、银、铜牌数目。输出4个整数,为A国所

10、获得的金、银、铜牌总数及总奖牌数。 输入: 输入n1行,第1行是A国参与决赛项目的天数n,其后n行,每一行是该国某一天获得的金、银、铜牌数目,以一个空格分开。 输出: 输出1行,包括4个整数,为A国所获得的金、银、铜牌总数及总奖牌数,以一个空格分开。 样例输入: 3 1 0 3 3 1 0 0 3 0 样例输出: 4 4 3 11,【上机练习】,7.奇数求和【1.5编程基础之循环控制07】 计算非负整数m到n(包括m和n)之间的所有奇数的和,其中,m 不大于 n,且n 不大于300。例如 m=3, n=12, 其和则为:3+5+7+9+11=35。 输入: 两个数 m 和 n,两个数以一个空格

11、分开,其中 0 = m = n = 300 。 输出: 输出一行,包含一个整数,表示m 到 n(包括m 和 n )之间的所有奇数的和 样例输入: 7 15 样例输出: 55,【上机练习】,8.满足条件的数【1.5编程基础之循环控制08】 将正整数m和n之间(包括m和n)能被17整除的数累加,其中0mn1000。 输入: 一行,包含两个整数m和n,其间,以一个空格间隔。 输出: 输出一行,包行一个整数,表示累加的结果。 样例输入: 50 85 样例输出: 204,【上机练习】,9.整数的个数【1.5编程基础之循环控制09】 给定k(1k100)个正整数,其中每个数都是大于等于1,小于等于10的数

12、。写程序计算给定的k个正整数中,1,5和10出现的次数。 输入: 输入有两行:第一行包含一个正整数k,第二行包含k个正整数,每两个正整数用一个空格分开。 输出: 输出有三行,第一行为1出现的次数,第二行为5出现的次数,第三行为10出现的次数。 样例输入: 5 1 5 8 10 5 样例输出; 1 2 1,【上机练习】,10.与指定数字相同的数的个数【1.5编程基础之循环控制10】 输出一个整数序列中与指定数字相同的数的个数。输入包含2行:第1行为N和m,表示整数序列的长度(N=100)和指定的数字;第2行为N个整数,整数之间以一个空格分开。输出为N个数中与m相同的数的个数。 输入: 第1行为N

13、和m,表示整数序列的长度(N=100)和指定的数字, 中间用一个空格分开; 第2行为N个整数,整数之间以一个空格分开。 输出: 输出为N个数中与m相同的数的个数。 样例输入: 3 2 2 3 2 样例输出: 2,【上机练习】,11.乘方计算【1.5编程基础之循环控制11】 给出一个整数a和一个正整数n(-1000000=a=1000000,1=n=10000),求乘方an,即乘方结果。最终结果的绝对值不超过1000000。 输入: 一行,包含两个整数a和n。-1000000 = a = 1000000,1 = n = 10000。 输出: 一个整数,即乘方结果。题目保证最终结果的绝对值不超过1

14、000000。 样例输入: 2 3 样例输出: 8,【上机练习】,12.人口增长【1.5编程基础之循环控制12】 我国现有x亿人口,按照每年0.1%的增长速度,n年后将有多少人?保留小数点后四位。 输入: 一行,包含两个整数x和n,分别是人口基数和年数,以单个空格分隔。 输出: 输出最后的人口数,以亿为单位,保留到小数点后四位。1 =x= 100, 1=n=100。 样例输入: 13 10 样例输出: 13.1306,【上机练习】,13.菲波那契数【1.5编程基础之循环控制13】 菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。给出一个正整数k,要

15、求菲波那契数列中第k个数是多少。 输入: 输入一行,包含一个正整数k。(1 = k = 46) 输出: 输出一行,包含一个正整数,表示菲波那契数列中第k个数的大小 样例输入: 19 样例输出: 4181,【上机练习】,14.鸡尾酒疗法【1.5编程基础之循环控制15】 鸡尾酒疗法,指“高效抗逆转录病毒治疗”。人们在鸡尾酒疗法的基础上又提出了很多种改进的疗法。为了验证这些治疗方法是否在疗效上比鸡尾酒疗法更好,可用通过临床对照实验的方式进行。假设鸡尾酒疗法的有效率为x,新疗法的有效率为y,如果y-x大于5%,则效果更好,如果x-y大于5%,则效果更差,否则称为效果差不多。下面给出n组临床对照实验,其

16、中第一组采用鸡尾酒疗法,其他n-1组为各种不同的改进疗法。请写程序判定各种改进疗法效果如何。 输入: 第一行为整数n(1n=20);其余n行每行两个整数,第一个整数是临床实验的总病例数(小于等于10000),第二个疗效有效的病例数。这n行数据中,第一行为鸡尾酒疗法的数据,其余各行为各种改进疗法的数据。 输出: 有n-1行输出,分别表示对应改进疗法的效果:如果效果更好,输出better;如果效果更差,输出worse;否则输出same。 样例输入: 样例输出: 5 same 125 99 worse 112 89 better 145 99 same 99 97 123 98,【上机练习】,15.救援【1.5编程

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号