5循环结构程序设计

合集下载

C语言 第五章-循环结构程序设计

C语言 第五章-循环结构程序设计

执行过程如图所示。其中i为外循环的控制变 量,j为内循环的控制变量。
i =0 当 i <=10
j=0 当 j<=10
printf(“%d ”, i*j ) j++ i++
例4 编程打印“九九乘法表”。
分析:九九乘法表 1×1=1 1×2=2 1×3=3 … 2×1=2 2×2=4 2×3=6 … 3×1=3 3×2=6 3×3=9 … …… 9×1=9 9×2=18 9×3=27 …
i ++ ; } while ( i <= 100 ) ; printf ( " %d " , sum ) ; }
结果相同
同样是下列程序,但如果while后面的表达式结果一开始就是 假时,两种循环结果会不一样。
main ( ) /*程序1*/
{ int i , sum = 0 ; i = 101 ;
所以程序需要设计成二重循环。由于题目只 要求找到一组解,所以在循环过程中只要找到一组 满足条件的x, y, z就可以跳出循环。
跳出循环的方法可以采用break语句,但是, 因为是二重循环,所以要考虑使用break是否方便。
程序 百钱买百鸡问题。 void main ( ) { int x , y , z ;
打印第2行 ( i = 2 ) for (j=1;j<=9;j++) printf(“%5d”,i*j) ; printf ( “ \n ” ) ; /*换行打印*/
…… 打印第9行 ( i = 9 )
for (j=1;j<=9;j++) printf(“%5d”,i*j) ; printf ( “ \n ” ) ; /*换行打印*/

实验5循环结构

实验5循环结构

实验5循环结构理解课程内容、完成实验任务、写好实验报告实验五循环结构一、实验目的1.理解循环结构的含义和作用。

2.掌握ForNe某t、DoWhile----Loop结构的用法。

3.能够使用循环结构编写程序。

二、实验内容1.实验准备在练习文件夹中建立vb5-1、vb5-2、vb5-3、vb5-4、vb5-5、vb5-6、vb5-7、vb5-8文件夹。

2.DoWhile—Loop选择结构例1:给内部变量赋值(1)创建工程。

(2)建立用户界面,如右图所示。

(3)双击按钮控件,切换到代码设计窗口,添加程序代码如下:EndSub(4)调试运行程序。

(5)保存结果到练习文件夹中的vb5-1文件夹。

该程序通过在循环结构中添加K=K+1语句,使得K的值分别为2,3,4,,10。

(1)创建工程。

(2)建立用户界面,如上图所示。

(3)双击按钮控件,切换到代码设计窗口,添加程序代码如下:理解课程内容、完成实验任务、写好实验报告EndSub(4)调试运行程序。

(5)保存结果到练习文件夹中的vb5-2文件夹。

3.For—Ne某t选择结构程序代码如下:EndSub(4)调试运行程序。

(5)保存结果到练习文件夹中的vb5-3文件夹。

三、思考题1.设计一个程序,要求在窗体上显示20个100~200之间的随机整数。

保存结果到练习文件夹中的vb5-4文件夹。

2.设计一个程序,要求用对话框输入n值,在窗体上显示=1某2+2某3+3某4++n某(n+1)的值。

保存结果到练习文件夹中的vb5-5文件夹。

设计提示:(1)使用变量保存和值。

n的计算结果为14。

(2)使用DoWhile----Loop结构判断的大小,当>1000时结束循环。

保存结果到练习文件夹中的vb5-6文件夹。

2理解课程内容、完成实验任务、写好实验报告(3)使用For/Ne某t结构,结合E某itFor语句判断>1000时结束循环。

保存结果到练习文件夹中的vb5-7文件夹。

第5章 循环结构程序设计

第5章 循环结构程序设计
龙诚数码:
do-while语句的简单应用 do-while语句的简单应用
【例5.3】用辗转相除法求m和n的最大公约数 5.3】用辗转相除法求m
定义m、 、 定义 、n、r m<n T F m和n交换 和 交换 r=m%n m=n n=r 当r != 0时 时 输出最大公约数m 输出最: 算法和程序:
main( ) { int m,n,r; scanf("%d, %d",&m,&n); if (m<n) { r=m; m=n; n=r; } do { r=m%n; 程序运行情况如下: 程序运行情况如下: m=n; 24, 60 24, n=r; 12 }while(r!=0); while(r!=0 printf("%d\n",m); }
for语句的算法 for语句的算法
流程图 计算表达式1 计算表达式
表达式2 表达式 为真? 为真
15
N-S结构图 结构图 for (表达式 表达式 表达式 表达式1;表达式 表达式3) 表达式 表达式2;表达式 N 语句
Y 语句 计算表达式3 计算表达式
例如: 例如: 可部分或全部省略, 可部分或全部省略, main( ) 但“;”不可省略 { int i,sum; sum=0; for ( i=1; i<=100; i++) i=1 i<=100; sum=sum+i; sum=sum+i; printf("sum=%d\n",sum); }
龙诚数码:
18
for语句的简单应用 for语句的简单应用
【例5.4】求n! ,即计算p=1×2×3×…×n 5.4】 即计算p=1× 的值。 的值。

C语言程序设计_05循环结构程序设计

C语言程序设计_05循环结构程序设计

5.2 DO…WHILE循环结构 5.2.1 DO…WHILE语句的格式 DO…WHILE语句的一般格式为: DO 语句 WHILE(表达式); DO…WHILE语句中的表达式表示循环的条件,可 以是任何表达式,常用的是关系表达式和逻辑表达 式。表达式必须加圆括号。语句是重复执行的部分, 称作循环体。
由亍循环体在表达式2乊后表达式3乊前执行所以把循环体语句放在表达式3的开头循环体语句不原来的i构成逗号表达式作为循环语句新的表达式3从而也就没有循环体语句了
第5章 循环结构程序设计
5.1 WHILE循环结构 5.2 DO…WHILE循环结构 5.3 FOR循环结构 5.4 与循环有关的控制语句 5.5 3种循环语句的比较 5.6 循环的嵌套 5.7 循环结构程序举例 本章小结
图5-6 FOR语句执行过 程
FOR语句的执行过程如图5-6所示。具体由以下几步 完成: (1)求表达式1。 (2)求表达式2,并判定其值为0或非0。若值为非0, 转步骤(3);否则结束FOR语句。 (3)执行语句,然后求表达式3。 (4)转向步骤(2)。 由FOR语句的执行流程可知,表达式1的作用是为循 环控制的有关变量赋初值,表达式2是循环控制条件, 表达式3用于修正有关变量,语句是重复执行部分。
【例5.7】输入20个数,求出其中的最大值与最小值。
5.3.3 FOR语句的各种变形 1.在FOR语句中省略表达式 FOR语句中的3个表达式可以部分或全部省略,下面 给出语句的4种基本变形。 (1)表达式1移至FOR语句前,但它后面的分号必 须保留。这时FOR语句的形式为: 表达式1; FOR(; 表达式2; 表达式3) 语句
(2)表达式3移至循环体语句之后,但它前面的分 号必须保留。FOR语句的形式为: FOR(表达式1; 表达式2;) { 语句; 表达式3; } 对于求P=5!的程序段,省略表达式3,将其放在循环 体中,则程序段写成:

python程序设计实验报告五:循环结构程序设计(综合性实验)

python程序设计实验报告五:循环结构程序设计(综合性实验)

python程序设计实验报告五:循环结构程序设计(综合性实验)安徽⼯程⼤学Python程序设计实验报告班级物流192 姓名张⽻学号 3190505221 成绩⽇期 2020.4.23 指导⽼师修宇实验五综合运⽤三种基本结构进⾏程序设计(综合性实验)(⼆学时)【实验⽬的】(1)进⼀步掌握选择与循环结构程序设计的⽅法和技巧;(2)综合运⽤三种基本结构进⾏程序设计;【实验条件】PC机或者远程编程环境【实验内容】1、完成三个编程题。

(1)计算并输出指定范围内的素数素数⼜称质数。

指整数在⼀个⼤于1的⾃然数中,除了1和此整数⾃⾝外,没法被其他⾃然数整除的数。

换句话说,只有两个正因数(1和⾃⼰)的⾃然数即为素数。

⽐1⼤但不是素数的数称为合数。

1和0既⾮素数也⾮合数。

素数在数论中有着很重要的作⽤。

2300多年前,古希腊数学家欧⼏⾥得在《⼏何原本》⼀书中证明了素数有⽆穷多个,如2、3、5、7、11等等。

问题描述:编程实现输出指定范围内的素数,输⼊以逗号间隔,输出以空格间隔。

指定范围由⽤户输⼊指定。

(2)九九乘法表问题描述:请按照如下格式设计⼀个“九九乘法⼝诀表”,并打印出来。

编程要点及提⽰:1. 使⽤for循环或者while循环实现以上功能2. 代码量不超过10⾏3. 在⼀⾏中,每个等式之间使⽤制表符"\t"进⾏分隔;对于每⼀⾏等式之间使⽤print()打印空字符实现,即print("")(3)统计不同字符个数问题描述:⽤户从键盘输⼊⼀⾏字符。

请编写⼀个程序,统计并输出其中英⽂字符、数字符号、空格和其他字符的个数。

输⼊格式:输⼊⼀⾏字符输出:按照顺序输出字母,数字,空格,及其他字符的个数,个数以空格分隔如:【实验记录与分析】(请在填写实验记录与分析结果)1.计算并输出指定范围内的素数输⼊代码,输出结果及分析如下:易错点:1.程序⽆法同时处理两个输⼊数据,在输⼊未处理时。

2.本题中的else语句不能和第⼆个的if对齐。

C语言程序设计:第5章 循环结构

C语言程序设计:第5章 循环结构
执行过程: 先执行循环体语句,再检查 循环条件表达式的值是否为真, 如果为真则继续执行循环体语句, 否则结束循环。
12
do...while语句(cont...)
课堂练习: 1.输出1---n之间的数,其中n从键盘输入。
int main(void) {
//1.定义变量i和n //2.输入n的值 //3.思考循环的开始条件:i从1开始 //4.思考循环的结束条件:i++,i > n //5.循环的条件:i<=n //6.循环要做的事情:输出i的值 return 0; }
} 相当于 while(1) {
}
26
小结
❖for(i=m;i<n;i++)//循环次数:n-m次 ❖for(i=m;i<=n;i++)//循环次数:n-m+1次
27
循环语句的练习
课堂练习: 1.输出n---1之间的数,其中n>1且n从键盘输入。 2.计算1*2*3*...*n的值(n的阶乘n!), 其中n从键盘输入。 3.计算10- 1/2 - 1/3 -....1/n的值 以上练习分别以while、do...while、for语句实现
int main(void) {
//1.定义变量i,n,sum //2.输入n的值 //3.思考循环的开始条件:i从1开始 //4.思考循环的结束条件:i++,i > n //5.循环的条件:i<=n //6.循环要做的事情:累加i的值 //7.输出计算结果 return 0; }
24
for语句(cont...)
{
sum = sum + i;
if(sum > 100)break;

matlab实验五循环结构程序设计实验报告

matlab实验五循环结构程序设计实验报告

实验五:循环结构程序设计实验报告一、实验目的1. 了解循环结构的基本概念和原理;2. 掌握使用Matlab进行循环结构程序设计的方法;3. 提高编程能力和问题解决能力。

二、实验内容1. 学习while循环和for循环的基本语法和用法;2. 设计并编写一些基于循环结构的Matlab程序;3. 分析程序运行结果并进行总结。

三、实验原理循环结构是程序设计中的重要组成部分,它可以让一段代码重复执行多次,从而简化程序的编写。

在Matlab中,循环结构主要有while 循环和for循环两种形式。

while循环在执行循环体前判断条件是否为真,只有条件为真时才会执行循环体;for循环则是指定循环的次数,每次迭代时执行一次循环体。

四、实验步骤与结果1. 编写一个使用while循环的程序,实现1~100的累加。

程序代码如下:```matlabsum = 0;i = 1;while i <= 100sum = sum + i;i = i + 1;enddisp(sum);```运行程序后,得到的结果为5050。

2. 编写一个使用for循环的程序,实现1~10的阶乘。

程序代码如下:```matlabresult = 1;for i = 1:10result = result * i;enddisp(result);```运行程序后,得到的结果为xxx。

五、实验总结通过本次实验,我深刻理解了循环结构的基本概念和原理,掌握了使用Matlab进行循环结构程序设计的方法。

在编写循环程序的过程中,我发现循环结构可以大大简化程序的编写,并且能够高效地处理重复性任务。

我也进一步提高了自己的编程能力和问题解决能力。

本次实验使我对Matlab中的循环结构有了更加深入的了解,我相信这对我的编程能力和日后的学习工作都将大有裨益。

六、实验感想和改进意见通过本次实验,我深刻认识到循环结构在程序设计中的重要性和灵活性。

循环结构能够帮助我们简化程序的编写,提高代码的重用性和可读性,因此在实际的程序设计中,合理地运用循环结构能够大大提高程序的效率和逻辑清晰度。

项目五 循环结构程序设计

项目五 循环结构程序设计

图5-10 多循环的并列与嵌套
任务4 掌握循环结构程序设计实例
【例5-7】输出10~100之间的全部素数。所 谓素数n,是指除1和n之外,不能被2~(n-1) 之间的任何整数整除。 算法设计要点: (1)显然,只要设计出判断某数n是否是素 数的算法,外面再套一个for循环即可。
(2)判断某数n是否是素数的算法:根据素数 的定义,用2~(n-1)之间的每一个数去整除n, 如果都不能被整除,则表示该数是一个素数。 判断一个数是否能被另一个数整除,可通过判 断它们整除的余数是否为0来实现。
二、continue语句 continue语句的一般形式为: continue; continue只能用在循环语句中,它的功能是 结束本次循环,跳到循环体中下面尚未执行的语 句,接着进行下次是否执行循环的判定。
continue语句的功能:对于for循环,跳过循环 体其余语句,转向循环变量增量表达式的计算;对 于while和do-while循环,跳过循环体其余语句,但 转向循环继续条件的判定,也就是说continue语句 用在循环中时不会强制退出循环,但它会跳过循环 体中剩余的部分而转去循环的结尾部分,强制开始 下一轮循环。
普通高等教育“十二五”规划教材·计算机专业
C语言程序设计
主编 刘孟强 李思广
兴趣是最好的老师
知识有限创意无限 欢迎大家学习
C语言程序设计
项目五 循环结构程序设计
任务1 掌握循环结构语句
任务2 掌握break与continue语句
任务3 掌握多重循环
任务4 掌握循环结构程序设计实例
任务1 掌握循环结构语句
由于循环结构在现实生活中和数学运算中比 较常用,并且较之顺序结构和选择结构比较难, 所以要认真学习这一项目。

第5章 循环结构程序设计习题解答

第5章 循环结构程序设计习题解答

第5章循环结构程序设计习题解答1.输入n个整数,求这n个数之中的偶数平均值,并输出。

#include<stdio.h>void main(){int n,i,x,k=0,s=0;printf("Input a number(n):");scanf("%d",&n);printf("Input %d numbers:",n);for(i=0;i<n;i++){scanf("%d",&x);if(x%2==0){s+=x;k++;}}s/=k;printf("average=%d\n",s);}2.输入一串字符,直到输入一个星号*为止,统计(输出)其中字母个数和数字字符个数。

#include<stdio.h>void main(){int n=0,m=0;char c;printf("Input a string character:");do{scanf("%c",&c);if(c>='0'&&c<='9')n++;else if(c>='A'&&c<='Z'||c>='a'&&c<='z')m++;}while(c!='*');printf("number_char=%d\n",n);printf("letter_char=%d\n",m);}3.从键盘输入一正整数n,计算该数各位数字之和并输出。

例如,输入数是5246,则计算5+2+4+6=17并输出。

#include<stdio.h>void main(){int n,r,m=0,s=0;printf("Input a number(int):");scanf("%d",&n);do{r=n%10;s=s+r;n/=10;if(m==0)printf("%d",r);//加式中的第1项不带“+”elseprintf("+%d",r);m++;}while(n>0);printf("=%d\n",s);}4.输入一个字符串,将其中的大写字母改为小写字母,小写字母改为大写字母,然后输出。

C语言基础 五、循环

C语言基础 五、循环

五、循环结构程序设计本章概述:以笔试和上机两种形式考核。

笔试中,多出现在选择题第20-23题。

填空题第8、9题。

分值约占12%。

上机中,三种题型中均有体现,抽中几率约为37%。

考生要熟练掌握。

大纲要求:1.for循环结构。

2.while和do-while循环结构。

3.continue语句和break语句。

4.循环的嵌套。

重点难点:1.for循环结构。

2.continue语句和break语句。

3.循环的嵌套。

考点分析:while 语句while 语句一般形式:while (条件表达式){循环体}while 语句执行过程:先判断条件是否成立,只要条件成立则一直执行循环体语句,直到条件不成立则结束循环,结束while语句。

说明:(1)while语句的特点是先判断,再执行。

因此,若条件表达式的值一开始就为“假”,那么循环体一次也不执行。

(2)当循环体为多个语句组成,必须用{}括起来,形成复合语句。

(3)在循环体中应有使循环趋于结束的语句,以避免“死循环”的发生。

试题解析1.要求通过while循环不断读入字符,当读入字母N时结束循环。

若变量已正确定义,以下正确的程序段是(A)A)while((ch=getchar())!=′N′)printf("%c",ch);B)while(ch=getchar()!=′N′)printf("%c",ch);C)while(ch=getchar()==′N′)printf("%c",ch);D)while((ch=getchar())==′N′)printf("%c",ch);解析:while语句的功能是:计算表达式的值,如为真,则执行循环体语句,执行完毕后,再计算表达式的值,若仍为真,则重复执行循环体语句。

直到表达式的值为假时,结束循环。

ch=getchar()应加一个括号,表示输入字符的函数。

第5章 循环结构程序设计

第5章 循环结构程序设计

输入学生2的三门课成绩,并计算平均值后输出
scanf(“%f,%f,%f”,&s1,&s2,&s3);
aver=(s1+s2+s3)/3;
printf(“aver=%7.2f”,aver); 要对50个学生进行相同操作
重复50次
大多数的应用程序都会包含循环结构
循环结构和顺序结构、选择结构是结构 化程序设计的三种基本结构,它们是各 种复杂程序的基本构造单元
(1) 先求解表达式1 (2) 求解表达式2,若其值为真,执行循环体, 然后执行下面第(3)步。若为假,则结束循环, 转到第(5)步 (3) 求解表达式3 (4) 转回上面步骤(2)继续执行 (5) 循环结束,执行for语句下面的一个语句
5.4用for 语句实现循环
for(i=1;i<=100;i++) sum=sum+i; 等价于 用for语句更简单、方便 i=1; while(i<=100) { sum=sum+i; i++; }
要向计算机输入全班50个学生的成绩
分别统计全班50个学生的平均成绩 求30个整数之和 教师检查30个学生的成绩是否及格
5.1为什么需要循环控制
例如:全班有50个学生,统计各学生 三门课的平均成绩。
输入学生1的三门课成绩,并计算平均值后输出 scanf(“%f,%f,%f”,&s1,&s2,&s3); aver=(s1+s2+s3)/3; printf(“aver=%7.2f”,aver);
n 1
100
5.3用do---while语句实现循环
解题思路:
sum=0 i=1 sum=sum+i i=i+1

C语言全国试题(五-循环结构程序设计)

C语言全国试题(五-循环结构程序设计)

填空题(全国二级C 2008C2-8)
若有定义:int k;,以下程 序段的输出结果是__#_#_2_#_#_4__。
for (k=2; k<6; k++,k++ ) printf (“##%d”,k);
选择题(全国二级C 2007Q1-22)
C 有以下程序,程序的运行结果是 。
#include <stdio.h>
{ int i;
for ( i=1 ; i<=40; i++)
{ if (i++%5==0)
if (++i%8==0)printf("%d ",i); }
printf("\n"); }
A) 5
B) 24
C) 32
D) 40
选择题(全国二级C 2005Q1-27)
设变量已正确定义,则以下能正确
计算f=n!的程序段是 D 。
有以下程序段,且变量已正确定义和赋值
for ( s=1.0,k=1;k<=n; k++ ) s=s+1.0/(k*(k+1));
printf(“s=%f\n\n”,s); 请填空,使下面程序段的功能与之完全相同
s=1.0; k=1; while ( ___k_<_=_n__ ) { s=s+1.0/(k*(k+1)); __k_+_+__ ; } printf(“s=%f\n\n”,s);
以下程序的功能是计算: s=1+12+123+1234+12345。请填空。 main( ) { int t=0, s=0, i; for(i=1; i<=5; i++)

循环结构程序设计

循环结构程序设计
(1) 内循环变量与外循环变量不能同名; (2) 外循环必须完全包含内循环,不能交叉; (3) 不能从循环体外转向循环体内,也不能从外循环转向内循环.




For ii =1 To 10 For jj=1 To 20 … Next jj Next ii For ii =1 To 10 … Next ii For ii =1 To 10 … Next ii
5.1 For循环结构
1. For循环语句 (一般用于循环次数已知) 形式 For 循环变量=初值 to 终值 [Step 步长] 语句块 循环变量得初 [Exit For] 循环体 值 语句块 循环变量在终值 内 Next 循环变量 T
语句块
F
步长
>0 初值<终值 =1 时,可省略 <0 初值>终值 =0 死循环
( 2 ) 当 使 用 Until < 条 件 > 构 成 循 环 时 , 当 条 件 为 “假”,则反复执行循环体,直到条件成立,即为“真” 时, 则退出循环。
(3)在循环体内一般应有一个专门用来改变条件表达式中 变量的语句,以使随着循环的执行,条件趋于不成立 (或成立),最后达到退出循环。 (4)语句Exit Do的作用是退出它所在的循环结构,它只能 用在DO/Loop结构中,并且常常是同选择结构一起出现在循 环结构中,用来实现当满足某一条件时提前退出循环。
5.3 While…Wend语句
使用格式如下: While <条件 >
<循环块>
Wend 说明:该语句的功能与Do While <条件>….Loop实现 的循环完全相同。
例:用do…Loop语句改写前面的例题2

C语言第5章循环结构程序设计1

C语言第5章循环结构程序设计1

(2)在循环体中应有使循环趋向于结束的语句。 比如上例中,循环结束的条件是“score>=0”, 那么当我们把这个班的成绩全部输入完后, 一定要输入一个负数,才能使程序往下执行。 (3)循环体语句有可能一次也不执行。比如说上 例中,当第一次输入的分数就为负数时,则 循环体一次也不执行。
§5.3 do …while语句
① ② ④ ③
for(i=1; i<100; i++) s=s+i; printf(″s=%d″, s); }
/*循环体语句*/
对于for循环,有一点非常重要,即条件测 试永远是在循环开始时进行,如果在循环开 始时条件为假,那么循环体语句就不会被执 行。如: int i=10; for (k=10;k!=i;k++) printf(″%d″,k); printf(″%d″,k);
2、循环控制变量必须在循环体内有所改变,才 能使while和do-while语句的循环控制条件表达 式的值不断改变,直至循环结束。否则会造 成死循环。例如: i=1; while(i<=100) putchar(′*′); i++; 这个循环永远不会结束,因为“i++;”语句 不属于循环体中的语句,循环控制变量i没有 在循环体内被改变。 程序应该作如下改变:
在使用while语句的时候,我们要注意以下 两个问题: (1)循环体如果包含一个以上的语句,应该用花 括号括起来,以复合语句的形式出现。如果 不加花括号,则while语句的范围只到while后 面的第一个分号处。比如上例中,while语句 中如无花括号,则while语句范围只到 “average+=score;”。
#include <stdio.h> main() {int i,n;long fac; Scanf(―%d‖,&n); i=1 while (i<=n) fac=fac*i; i++; } Printf(―%d!=%ld‖,n,fac); }

第5章 循环结构程序设计

第5章 循环结构程序设计

运行结果:
printf("%d\n",sum);
sum = 5050
}
while语句和用do-while语句的比较:
一般情况,用while循环语句和用do -while循环语句处理问 题时,若循环体部分一样,结果也一样。但是如果while循 环语句循环条件一开始为“假”,则循环结果不同。while 循环语句一次也不执行,而do -while循环语句不论条件是 否成立,先执行一次循环体语句。
循环变量不增值。无终止地执行循环体。
例5-7用for语句求1 + 2 + 3 + … + 100
#include <stdio.h> void main() {
int i,sum=0; /*将累加器sum初始化为0*/ for(i=1; i<=100; i++) sum += i;/*实现累加*/ printf("sum=%d\n",sum); } 程序运行的结果为: sum=5050 解析:先执行变量赋初值,然后判定循环继续条件, 如果为“真”,执行循环体语句,i 为运算项目和循 环变量,执行完一次,增加一次,最后累加和。
if(n%3!=0) /*循环体*/
printf("%5d",n);
}
§5.4 多重循环
• 当循环中的内嵌语句是循环语句时,称为循 环的嵌套使用。内嵌的循环中嵌套循环,称 为多重循环。
C语言程序设计技术基础
第5章 循环结构程序设计
第5章 循环结构程序设计
5.1 while 循环语句 5.2 do while循环语句 5.3 for循环语句 5.4 多重循环 5.5 break语句与continue语句 5.6 几种循环语句的比较 5.7 循环结构程序举例

实验五 循环结构程序设计

实验五  循环结构程序设计
printf("*");
//③
}
}
(3)下列程序的功能为:从键盘上输入123,输出结果是54656。请纠正程序中存在错误,使程序实现其功能。
#include<stdio.h>
main()
{intc;//①
while(c=getchar() !='\n')//②
{ switch(c-1)
{ case '0':
“辗转相除法”求两个正整数的最大公约数的算法提示如下:
①将两数中大的那个数放在m中,小的放在n中。
②求出m被n除后的余数。
③若余数为0则执行步骤⑦;否则执行步骤④。
④把除数作为新的被除数;把余数作为新的除数。
⑤求出新的余数。
⑥重复步骤③到⑤。
⑦输出n,n即为最大公约数。
#include <stdio.h>
nY++;
if(nY > 3) break;
}
printf(“x = %d\n”,nX);
if(nY == 4) continue;
nX--;
}while(!nX);
}
运行结果:
(7)三重循环的使用。
有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。程序源代码如下:
printf("%d %d %d % d\n",a,b,c,d );
}
题目
⑴输入某课程的成绩(学生人数未知,以负数作为输入结束,大于100视为无效成绩),求课程成绩的平均分。

实验五 循环结构程序设计

实验五  循环结构程序设计

实验五循环结构程序设计一、实验目的(1)掌握使用while语句,do-while语句和for语句实现循环的方法。

(2)掌握在循环结构中使用break与continue语句的方法。

(3)掌握多重循环的使用方法。

二、实验步骤、数据记录及处理(1)编写程序输出半径为1到15的圆的面积,若面积在30到100之间则予以输出,否则,不予输出。

程序代码:#include<stdio.h>int main(){int i;float area;for(i=1;i<=15;i++){area=3.14*i*i;if(area<30) continue;else if(area>100) break;printf("半径为%d的圆的面积为%6.2f\n",i,area);}return 0;}运行结果:(2)输入一个正整数x(可以是1-9位的正整数),将其转换为逆序正整数y输出,例如输入x的值为3456,则输出y的值6543。

程序代码:#include<stdio.h>int main(){int num,temp,i=0;printf("请输入一个数字:");scanf("%d",&num);while(num>0){temp=num%10;++i;printf("%d",temp);num=num/10;}printf("\n这个数是%d位数",i);return 0;}运行结果:(3)编写程序,分行输出斐波那契Fibonacci数列的前20项(每行5个数)。

说明:斐波那契序列:1,1,2,3,5,8,13,21,……题目扩展(选做):求Fibonacci数列中小于t的最大的一个数,其中t由键盘输入。

例如:输入t=1000时,则输出987。

程序代码:#include <stdio.h>void main(){int i,a[20];a[0]=1;a[1]=1;for(i=2;i<20;i++)a[i]=a[i-1]+a[i-2];i=0;while(i<20){printf("%d\t",a[i++]);if(i%5 == 0)printf("\n");}}运行结果:(4)编写程序,输出“九九乘法口诀表”。

第五节 循环结构程序设计

第五节 循环结构程序设计
}
运行结果为
pi=3.141592
注意:不要把n定义为整型变量,否则在执行“t=s/n;”时,得到t的值为0(原因是两个整数相除)。
例5.4求Fibonacci数列前40个数。这个数列有如下特点:第1、2个数为1、1。从第3个数开始,每个数是其前面两个数之和。即
F1=1 (n=1)
F2=1 (n=2)
#include <iomanip>
using namespace std;
int main( )
{int m,k,i,n=0;
bool prime;//定义布尔变量prime
for(m=101;m<=200;m=m+2) //判别m是否为素数,m由101变化到200,增量为2
{prime=true;//循环开始时设prime为真,即先认为m为素数
{int s=1;
double n=1,t=1,pi=0;
while((fabs(t))>1e-7)
{pi=pi+t;
n=n+2;
s=-s;
t=s/n;
}
pi=pi*4;
cout<<"pi="<<setiosflags(ios∷fixed)<<setprecision(6)<<pi<<endl;
return 0;
while语句的一般形式如下:
while (表达式)语句
其作用是:当指定的条件为真(表达式为非0)时,执行while语句中的内嵌语句。其流程图见图5.1。其特点是:先判断表达式,后执行语句。while循环称为当型循环。
图5.1
例5.1求1+2+3+…+100。

循环结构程序设计

循环结构程序设计

第5章 循环结构程序设计
5.1 循环语句 5.1.2 while语句 while语句用来实现“当型”循环结构。 while语句的一般形式如下: while(表达式) 语句 /*循环体*/ 功能:当表达式的值为真时,执行 while语句中的循环体。
表达式 真

语句
第5章 循环结构程序设计
5.1 循环语句 5.1.2 while语句 while语句用来实现“当型”循环结构。 while语句的一般形式如下: while(表达式) 语句 /*循环体*/ 功能:当表达式的值为真时,执行 while语句中的循环体。
例5.6 判断一个数m是否是素数。
开始 输入m
i=2
i<=m-1 假 真 m%i==0 真 假 i=i+1 真 假
#include <stdio.h> main() { int m,i; scanf("%d",&m); for(i=2;i<=m-1;i++) if(m%i==0) break; if(i<=m-1) printf("%d不是素数",m); else printf("%d是素数",m); }
第5章 循环结构程序设计
5.2 多重循环 在循环体语句中又包含有另一个完整的循环结构的 形式,称为循环的嵌套(又称双重循环)。如果内循环 体中又有嵌套的循环语句,则构成多重循环。 嵌套在循环体内的循环体称为内循环,外面的循环称为 外循环。 while、do…while、for三种循环都可以互相嵌套。
a=1
a<=9 真 b=1
假 b<=9 真 输出a×b=c b=b+1 a=a+1

上机实验五 循环结构程序设计一(带参考答案)

上机实验五 循环结构程序设计一(带参考答案)

上机实验五循环结构程序设计(一)一.目的要求1.掌握while、do-while、for语句的语法规则、执行流程。

2.比较3种循环语句的异同。

3.按题目要求,完成代码。

二.实验内容思考问题:3种循环的异同点?能否相互转换?for循环控制单元的表达式与while循环中表达式是如何对应的?第1题、分别用while、do-while、for语句编程,求数列前20项之和:2/1,3/2,5/3,8/5,13/8······算法提示:1)定义实变量sum、term、a、b、c,整变量i2)初始化:sum=0,分子a=2,分母b=13)初始化:i(计数器)=14)计算第i项term =a/b5)累加sum=sum+term6)计算c=a+b,更新b= a,更新a=c7)计数器加1,i++8)重复4、5、6、7,直到i>209)输出2位精度的结果编写程序:方法一,用while语句:#include<stdio.h>void main(){float s=0, a=2,b=1,c;int i=1;while(i<=20){s=s+a/b;c=a+b;b=a;a=c;i++;}printf(“s=%.2f”,s);}方法二,用do-while语句:#include<stdio.h>void main(){float s=0,a=2,b=1,c;int i=1;do {s=s+a/b;c=a+b;b=a;a=c;i++;} while(i<=20);printf(“s=%.2f”,s);}方法三,用for语句:#include<stdio.h>void main(){float s=0,a=2,b=1,c;int i;for(i=1;i<=20;i++){s=s+a/b;c=a+b;b=a;a=c;}printf(“s=%.2f”,s);}第2题、计算多项式的值:s=1!+2!+3!+4!+ (20)算法提示:该多项式迭代公式为:term=term*i,sum=sum+term注意:哪些变量需要初始化?变量应采用什么类型?编写程序:#include<stdio.h>void main(){int i;double s=0,fact=1;for(i=1;i<=20;i++){fact*=i;s=s+fact;}printf(“s=%f”,s);}把每一次迭代结果输出,程序应做怎样的修改?第3题、输入x和n,计算并输出下式的值:s=x/1+x/3+……+x/n参考答案:#include <stdio.h>int main(){int n,i;float x,s=0;printf("请输入x,n,以,分隔");scanf("%f,%d",&x,&n);for(i=1;i<=n;i+=2){s+=(x/i);}printf("\ns=%f",s);}第4题、输入一批正整数,求出其中的偶数之和。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

5.6
break语句和continue语句
一、break语句
break语句的一般形式为: break;
说明: 其执行过程是:在循环语句中如果执行到break语句, 则终止break所在循环的执行,循环体中break语句之后的语 句也不再执行。通常break语句总是与if语句联用,即满足 条件时便跳出循环。
goto语句
[例5.7] 利用goto语句“求1+2+3+„„+99+10 0 ”的和。
运行结果: 1+2+3....+100=5050
label ['leibl] 基本翻译 vt. 标注;贴标 签于 n. 标签;商标; 签条
5.4
goto语句
[例5.8] 利用goto语句跳出循环。
main( ) { int i, sum=0; i=1; 运行结果: 1+2+3....+50=1275 while(i<=100) { sum=sum+i; i++; if (i>50) goto label; } label:printf("\n1+2+3....+50=%d",sum); }
习题
P110
1.(3) 4.(1)
5.3
for语句
for语句的一般形式 for (表达式1; 表达式2; 表达式3) 语句(循环体)
for语句最简单的应用形式也是最容易理解的形式 如下: for(循环变量赋初值;循环条件;循环变量增量) 语句(循环体)
说明:
“表达式1”一般是是一个赋值表达式, 它用来给循环控制变量 赋初值; “表达式2”一般是一个关系表达式或逻辑表达式,它 决定什么时候退出循环;“表达式3”一般是个算术表达式,定义 循环控制变量每循环一次后按什么方式变化。这三个部分之间用 “;”间隔。
for循环结构执行流程
5.3
for语句
[例5.4] 利用for语句“求1+2+3+„„+99+100 ”的和。
main( ) { 运行结果: int i,sum; 1+2+3....+100=5050 for(i=0,sum=0; i<=100; i++) sum=sum+i; printf("\n1+2+3....+100=%d",sum); }
5.6
break语句和continue语句
[例5.11] 把100~200之间不能被3和2整除的数输出。 main( ) 运行结果: { 101 103 107 int k=0,n=100; 115 119 121 while(n<=200) 131 133 137 { 145 149 151 161 163 167 n++; 175 179 181 if(n%3==0 || n%2==0) continue; 191 193 197 printf("%5d",n); k++; if(k%5==0) printf("\n"); } }
5.5

几种循环控制语句的比较
(1)while语句和for语句是属于先判断循环条件的循 环语句,故循环体有可能一次也不执行,属于当型循 环结构。 (2)do-while语句是执行完循环体后,再判断循环条 件的循环语句,循环体至少执行一次,属于直到型循 环结构。 (3)循环体至少执行1次时,四种循环都可用来处理 同一问题,可以互相代替。所有循环语句都是在循环 条件为真(非0)时才能执行循环体。
5.1
while语句
[例5.2] 输入10个学生的C语言课程考试成绩,求总成绩 和平均成绩。
main() { int i,score; int sum; float average; /* average存放平均成绩 */ printf("输入%d个学生的C语言课程考试成绩:\n",10); sum=0; i=0; while(i<10) { scanf("%d",&score); sum=sum+score; i++; score成绩 }
5.3
for语句
如: for(i=1; i<=100; i++) sum=sum+i; 先给i赋初值1,判断i是否小于等于100, 若是则执行语 句sum=sum+i,之后值增加1。再重新判断, 直到条件为 假,即i>100时,结束循环。
5.3
语句运行流程图如下:
for语句
表达式1 假
表达式2
真 循环体 表达式3
5.3
for语句
for(i=1;i<N;i++) /* 输入N-1个学生的考试成绩 */ { 运行结果: scanf("%d",&score); 输入10个学生的考试成绩: sum=sum+score; 82 91 88 70 85 93 67 73 80 77 ↙ if (score>max) max=score; 最高分为:93 else if (score<min) min=score; 最低分为:67 总成绩为:806 } average=(float)sum/N; 平均成绩为:80.60 /* 求平均成绩 */ printf("最高分为:%d\n",max); printf("最低分为:%d\n",min); printf("总成绩为:%d\n",sum); printf("平均成绩为:%.2f",average); }
任务分解: 单一科目成绩的输入、输出和处理。

多种科目成绩的输入、输出和处理。
5.1
while语句
While循环语句的一般形式 while (表达式) 语句;(循环体)
语句运行流程图如下:
假 表达式

循环体
While循环结构执行流程
5.1 while语句
[例5.1] 利用while语句“求1+2+3+……+99+100 ”的 和。 main( ) {int i, sum=0; i=1; while(i<=100) { sum=sum+i; i++; 运行结果: } 1+2+3....+100=5050 printf("1+2+3....+100=%d\n",sum); }
5.3
for语句
[例5.6] 检测给定整数是否素数。
main( ) 运行结果: { int i, k, flag; 17↙ 17 is a prime scanf("%d",&k); flag=1; /* 若标志变量flag等于0,k不是素数,若flag不等于0, 则k是素数。*/ for ( i=2; i<k; i++ ) /* i循环中分别检测k能否被i整除,i=2, 3„,k-1 */ if ( k%i==0 ) { flag=0; /* k能被i整除,k不是素数,令l=0 */ i=k; /* 令i为k,使i<k不成立,其作用是退出循环 */ } if ( flag==1 ) printf("%d is a prime\n",k); else printf("%d is not a prime\n",k); }
[例5.3] 利用do-while语句“求1+2+3+„„+99+100 ” 的和
main( ) 运行结果: { 1+2+3....+100=5050 int i, sum=0; i=1; do {sum=sum+i; i++; } while (i<=100); printf("\n1+2+3....+100=%d",sum); }
5.5

几种循环控制语句的比较
(4)如果循环次数可以在进入循环语句之前确定,使 用for语句较好;在循环次数难以确定时使用while和d o-while语句较好。 (5)用while和do-while循环时,循环变量初始化的 操作应在while和do-while之前完成;而for语句可以在 表达式1中实现变量的初始化。 (6)while和do-while循环,只在while后面指定循环 条件,在循环体中包含应反复执行的操作语句,包括 使循环趋于结束的语句。for循环可以在表达式3中包含 使循环趋于结束的操作。
5.6
break语句和continue语句
二、continue 语句
contiune语句的一般形式为: continue;
说明: 其执行过程是:如果在循环体语句的执行过 程中遇到并执行了continue语句,那么系统将跳 过循环体中剩余的语句而强制执行下一次循环。 与break语句的用法相似,continue语句常与if 条件语句一起使用。
109 125 139 155 169 185 199
113 127 143 157 173 187
5.6
说明:
break语句和continue语句
break语句与continue语句区别:continue是结束本次循环, 进行下一次循环,而不是结束整个循环过程。对单层循环,break 语句是结束整个循环,转到循环体外;对于多层循环,则是结束 最内层循环。 break语句和continue语句只对do-while语句、while语句和f or语句构成的循环有控制作用,对goto语句构成的循环无效。
5.1 while语句
相关文档
最新文档