第4章 循环结构设计

合集下载

Python程序设计 第4章 循环结构程序设计(第7次课)2

Python程序设计 第4章 循环结构程序设计(第7次课)2
print score[i],
sum += score[i]
#循环体——对列表元素求和
aver = sum / 8.0 #循环之后,求平均值 print '\naver = ', aver
计算机编程导论
Copyright © SWFU-CISD, 2012. All rights reserved.
Copyright © SWFU-CISD, 2012. All rights reserved. 1-11
为 i 赋初值 1 False
判断 i <= 100? True
判断 i 是否能被 7 整除但不能被 5 整 除 ?
False
True 输出 i
i 自增 1
结束 图 4-10 整除问题的框图
计算机编程导论

1 1 2 1 2 3 1 2 3 4 1 2 n 1 2 3 3 5 3 5 7 3 5 7 9 3 5 (2n 1)
Copyright © SWFU-CISD, 2012. All rights reserved.
1-10
Copyright © SWFU-CISD, 2012. All rights reserved.
计算机编程导论
【例4-8】求1 ~ 100之间能被7整除,但不能同 时被5整除的所有整数 。
开始
【分析】 (1)本题需要对1 ~ 100 范围内的所有数一一进 行判断。 (2)本题的循环次数确 定是100次。 (3)在每次循环过程中 需要用 if 语句进行条件 判断。因此本题是循环 嵌套选择的结构。
1-19
利用for语句实现双层循环嵌套
循环的嵌套是指在一个循环中又包含另外一个 完整的循环,即循环体中又包含循环语句。 while循环和for循环可以相互嵌套。 循环嵌套的执行过程是:一次外循环对应着完 整的一轮内循环。

第04章 基本控制结构-3(循环结构)

第04章 基本控制结构-3(循环结构)

(2) 在循环嵌套中,内外循环的循环变量不能同名。
(3) 采用缩进格式书写代码可以有效地防止嵌套混乱。
第 27 页
4.4.3 循环嵌套结构

在窗体上输出一个由“*”组成的三角形。
For j = 1 To 6 For i = 1 To j Print "* "; Next i Print Next j

1+3+5+7+……+(2n-1) 当和大于100时结束

1-3+5-7……+(2n-1)
1 1 1 1 ( 1 n -1 ) 1 3 5 7 2n 1
第 14 页
4.4.1 Do While…Loop循环结构

代码设计

Dim s%, x% s=0 x=1 Do while s <= 100
4.4.1 Do While…Loop循环结构
例:西农今年招生5000人,若果每年以5%的速度递增,多 少年后,每年招生人数达到或超过10000人。

算法设计

P = 5000,n=0
P<10000
定义变量p、n 初始化p=5000,N=0 计算p




计数
重复 输出结果
P = P *(1+0.05) n=n+1
s = 0,n=1,x=1
s<=100


n = n+1 s = s + x *(-1)^n
x = x+2
输出s
第 16 页
4.4.1 Do While…Loop循环结构

C语言程序设计课件 第4章 循环结构.ppt

C语言程序设计课件 第4章 循环结构.ppt
10
while语句
语法形式:
while (表达0(式假)) 表达式?循环体;
非0(真) 循环体
后续语句
11
执行过程:
step1:求解表达式,若 为0(假),则退出循 环执行后续语句。若 为非0(真),则执行 循环体。
step2: 转回step1继续 判断。
while语句应用实例
【例4.3】从键盘上读入一个非0的整数,统计该数的
语句功能
{count++; number=number/10;
?
}
printf ("It contains %d digits.\n",count);
}
12
while语句应用实例
【例4.4】计算表达式a+aa+aaa+…+aaa…a,其中a与x的值从 键盘上输入。
int a,x;
long sum=0,n=1,tn;
scanf("%d,%d", &a,&x);
tn=a; while(n<=x) {sum+=tn; tn=tn*10+a; n++;
循环次数 第1次 第2次 第3次 第4次
循环条件 1<=4为真 2<=4为真 3<=4为真 4<=4为真
}
第5次
5<=4为假
sum值
tn值
n值
0+2
2*10+2
2
2+22
C语言程序设计
第4章 循环结构
本章主要内容
1. 循环结构设计理念 2. for循环语句 3. while循环语句 4. do…while循环语句 5. 循环嵌套 6. 流程控制语句

第四章《程序设计基础》第4课时《运用循环结构描述问题求解过程教学设计粤教版高中信息技术必修1

第四章《程序设计基础》第4课时《运用循环结构描述问题求解过程教学设计粤教版高中信息技术必修1
5.小组合作:与小组成员共同讨论以下问题,并在下节课分享讨论成果。
-循环结构在实际编程中的应用场景。
-如何避免循环结构中的常见错误,如死循环、无限循环等。
- while循环和for循环在实际问题中的选择策略。
请同学们认真完成作业,通过实践提高自己的编程能力。在完成作业的过程中,如有疑问,可以随时向老师和小组成员请教。期待大家在信息技术学科上取得更好的成绩!
6.设想六:评价反馈,促进成长
教学结束后,教师对学生的学习情况进行评价,包括知识掌握、团队合作、创新能力等方面。评价应以鼓励为主,关注学生的个体差异,促进他们在信息技术学科上的持续成长。
四、教学内容与过程
(一)导入新课
1.教学活动:以一个简单的数学问题“计算1到100的累加和”作为引入,让学生思考如何利用已学的程序设计知识解决这个问题。
二、学情分析
在本章节的学习中,学生已经掌握了程序设计的基本概念、顺序结构以及选择结构,具备了初步的程序设计能力。在此基础上,他们对循环结构的学习将进入一个新的阶段。由于循环结构在算法中的广泛应用,学生需要在此阶段加强对循环概念的理解,以便能够熟练地运用循环结构解决实际问题。
考虑到学生的认知水平,他们对循环结构的理解可能还存在一定的困难。部分学生对循环变量的设置、循环条件的判断以及循环体的编写可能感到困惑。因此,在教学过程中,教师应关注这些难点,通过生动的案例和形象的解释帮助学生克服困难。
2.教师示范:通过案例演示,展示如何使用while循环和for循环解决实际问题,如计算1到100的累加和。
3.知识拓展:介绍循环结构的其他应用场景,如遍历数组、实现排序算法等。
(三)学生小组讨论
1.教学活动:将学生分成小组,每组讨论以下问题:
- while循环和for循环有哪些区别和联系?

第四章 结构化程序设计的三种结构

第四章 结构化程序设计的三种结构

第四章结构化程序设计的三种结构4.1 顺序结构程序设计一、结构化程序设计的程序结构顺序结构、分支结构/选择结构、循环结构二、C语言语句1、9种控制语句2、表达式语句3、特殊语句三、格式化输出--printf()函数printf()函数的作用:向计算机系统默认的输出设备(一般指终端或显示器)输出一个或多个任意类型的数据。

printf()函数的一般格式printf("格式字符串" [,输出项表]);1、"格式字符串"也称"转换控制字符串",可以包含三种字符(1)格式指示符。

格式指示符的一般形式如下:%[标志][宽度][.精度][F|N|h|L][类型]常用的标志字符如表3-1所示,常用的宽度指示符如表3-2所示,常用的精度指示符如表3-3所示,长度修饰符如表3-4所示,类型转换字符如表3-5所示。

(2)转义字符'\n'就是转义字符,输出时产生一个"换行"操作。

转义字符通常起控制作用(3)普通字符──除格式指示符和转义字符之外的其它字符。

格式字符串中的普通字符,原样输出。

例如printf("radius=%f\n", radius);语句中的"radius="是普通字符。

2.输出项表输出项表是可选的。

如果要输出的数据不止1个,相邻2个之间用逗号分开。

下面的printf()函数都是合法的:(1)printf("I am a student.\n");(2)printf("%d",3+2);(3)printf("a=%f b=%5d\n", a, a+3);必须强调:"格式字符串"中的格式指示符,必须与"输出项表"中、输出项的数据类型一致,否则会引起输出错误3、格式指示符输出不同类型的数据,要使用不同的类型转换字符。

C语言程序设计习题集第4章 循环结构(答案)

C语言程序设计习题集第4章 循环结构(答案)

第4章循环结构一、选择题1、有以下程序段int k=0;while(k=1)k++;while 循环执行的次数是(A)A)无限次B)有语法错,不能执行C) 一次也不执行D)执行1次2、t为int类型,进入下面的循环之前,t的值为0while(t=1){ …… }则以下叙述中正确的是(B)A) 循环控制表达式的值为0B)循环控制表达式的值为1C) 循环控制表达式不合法D)以上说法都不对3、在C程序中,与while(m)中表达式m完全等价的是(B )A) m==0 B) m!=0 C) m==1 D)m!=14、有以下程序,程序运行后的输出结果是(C).main(){int i=1,sum=0;while(i<=4){sum=sum+i;i=i+1;}printf(“%d\n”,sum);}A)4 B)5 C)10 D)死循环5、有以下程序,程序运行后的输出结果是(D ).main(){int i=1,sum=0;while(i<=4)sum=sum+i;i=i+1;printf(“%d\n”,sum);}A)4 B)5 C)10 D)死循环6、有如下程序main(){int n=9;while(n>6){n-—;printf(“%d",n);}}该程序段的输出结果是(B)A)987 B) 876 C) 8765 D) 98767、以下程序的输出结果是(B)main(){int num= 0;while(num<=2){num++;printf(“%d\n”,num);}}A) 1 B) 1 C)1 D)l2 2 23 348、有以下程序,若运行时输入3.6 2.4<回车〉,则输出的结果是( B)。

main(){float x,y,z;scanf(“%f%f”,&x,&y);z=x/y;while(1){if(fabs(z)>1。

0){x=y;y=z;z=x/y;}elsebreak;}printf(“%f\n”,y);}A)1.500000 B)1.600000 C)2。

第4章 循环结构程序设计

第4章 循环结构程序设计
i=1; for(;i<=100;) {sum=sum+i;
i++; }
4.2.2 for 语句的使用
3个表达式都可以省略。 for(;;) 即不设初值,不判断条件(认为循环条件永远为真),
循环变量不增值,无终止地执行循环体语句。
4.2.2 for 语句的使用
for (sum=0 ; i<=100; i++) sum=sum+i;
控制输出3行
for (j=1;j<=4;j++,n++)
{ if (n%4==0) printf (“\n”);
printf ("%d\t",i*j);
}
printf("\n");
return 0;
}
#include <stdio.h>
int main()
{ int i,j,n=0; for (i=1;i<=3;i++)
for(i=1;i<=30;i++) { scanf(“%f,%f,%f”,&score1,&score2,&score3); aver=(score1+score2+score3)/3; printf(“aver=%6.1f”,aver); }
➢大多数的应用程序都会包含循环结构
➢循环结构和顺序结构、选择结构是结构 化程序设计的三种基本结构,它们是各 种复杂程序的基本构造单元
scanf(“%d”,&i);
scanf(“%d”,&i);
while(i<=10)
do

信息学奥赛NOIP第4单元循环结构程序设计.ppt

信息学奥赛NOIP第4单元循环结构程序设计.ppt
其含义为:先执行一次循环体, 然后判断表达式是否成立,如果成 立,则返回继续执行循环体,直到 表达式不成立,才退出循环。一般 称之为“直到型循环”。
高等教育出版社
信息学奥赛课课通(C++)
例1、用 do-while 语句实现输出一行 10 个“@”。
//p4-2-1 #include<cstdio> using namespace std; int main(){
高等教育出版社
信息学奥赛课课通(C++)
【样例输入】 5 5000 6077 【样例输出】 4
//p4-2-3 #include<iostream> using namespace std; int main(){
double r,m,y; int k = 0; cin >> r >> m >> y; do{
高等教育出版社
信息学奥赛课课通(C++)
例3、统计正数
【问题描述】 输入若干整数,以 0 结尾,统计其中有多少个正整数。 【输入格式】 一行若干整数,最后一个为 0。 【输出格式】 一行一个整数,表示输入的数据中正整数的个数。 【样例输入】 3 6 -3 2 0 【样例输出】 3
高等教育出版社
信息学奥赛课课通(C++)
//p4-3-1a #include<cstdio> using namespace std; int main(){
for(int i = 1; i <= 10; i++) printf( “ @ ” );
printf( “\n ” ); return 0; }

第4章 循环结构程序设计ppt课件

第4章 循环结构程序设计ppt课件
普通高等教育“十一五 ” 国家级规划教材
第4章 循环结构程序设计
在解决实际问题的过程中,常常会遇 到一些需要重复处理的问题。循环结构可 用来处理需要重复处理的问题,所以,循 环结构又称为重复结构。
普通高等教育“十一五 ” 国家级规划教材
第4章 循环结构程序设计
4.1 循环的概念 4.2 while 语句 4.3 do…while循环 4.4 for循环 4.5 break语句和continue 4.6 4.7 程序举例 4.8 三种循环语句的比较
符中数字字符的个数。
(a) 流程图描述
(b) N-S图描述
4.2 while 语句
普通高等教育“十一五 ” 国家级规划教材
#include <stdio.h> void main() { char ch;
程序运行结果:
Press enter to end input <Enter> 5!a66bc7↙ 5667 num=4
4.3 do…while循环
普通高等教育“十一五 ” 国家级规划教材
#include <stdio.h> void main() { int num=0;
float score,sum=0,ave; printf("input score of student:\n"); scanf("%f",&score);
#include <stdio.h>
void main( )
{ int sum=0,i=1;
do
/* 开始执行循环 */
{ sum=sum+i;
/* 计算累加和 */
i++;

chp4循环结构

chp4循环结构

第四章循环结构程序设计 (2)4.1引例——统计某门课程平均成绩 (2)4.2循环控制语句之一——while语句 (3)4.2.1使用while语句实现引例 (3)4.2.2while语句应用举例 (4)4.3循环控制语句之二——do while语句 (7)4.3.1使用do while语句实现引例 (7)4.3.2do while语句应用举例 (9)4.4循环控制语句之三——for语句 (10)4.4.1使用for语句实现引例 (10)4.4.2 for语句应用举例 (11)4.5break语句和continue语句 (13)4.6应用循环解决实际问题 (16)4.6.1使用循环嵌套统计学生的平均成绩 (16)4.6.2使用循环完善学生成绩管理系统菜单 (18)4.7小结 (20)习题 (21)上机实训 (23)阅读材料 (24)第四章循环结构程序设计在许多问题中会遇到大量具有规律性的重复运算,用C语言解决这样的问题就需要用到结构化程序设计的基本结构之一——循环结构。

在C语言中提供了专门用于循环的控制语句:while语句、do while语句和for语句。

本章着重介绍这三种循环语句及循环结构编程的基本思想。

4.1引例——统计某门课程平均成绩1.问题描述每学期末期,学生要参加考试。

考试结束后通常需要对各门课程的教学情况总结。

其中,统计所修课程的学生平均成绩是考察教学效果的重要评定参数。

假设计算机应用08班的40名同学选修了C语言程序设计,要求统计该门课程的平均成绩。

2.引例分析计算平均成绩的方法,是数学中求平均值的简单运算,即求出所有人成绩的总和,用人数去除总成绩可得结果。

具体步骤如下:1)主要变量的定义。

(1)设定变量sum存放总成绩,其初值为零,即sum=0;(2)设定变量score存放某位同学的成绩。

2)运算处理。

(1)输入第1位同学的成绩,在总成绩sum中计入其成绩,即执行语句:scanf("%d",&score);sum=sum+score;(2)接着,键入第2位同学的成绩存入变量score中,在已得总成绩值sum的基础上累加,即继续执行语句:scanf("%d",&score);sum=sum+score;(3)再输入第3位同学的成绩存入score,然后计入总成绩sum。

第四章。循环结构(while、do-while、for)

第四章。循环结构(while、do-while、for)

Top1.循环结构(while、do…while、for)1. 循环结构(while、do…while、for)1.1. 什么是循环结构在日常生活中,会有很多需要反复执行的事情,比如:每一年的4个季节,每一周的7天,每日的3餐,打印机每份文档打印50份,一圈跑道400米跑3圈,都是在反复执行的。

再看软件系统中的需求:问题1:输出100行语句,每行语句都一样,即:∙行动是成功的阶梯,行动越多,登得越高!∙行动是成功的阶梯,行动越多,登得越高!∙行动是成功的阶梯,行动越多,登得越高!…问题2:输出100行语句,每行语句都类似,即:∙第1,行动是成功的阶梯,行动越多,登得越高!∙第2,行动是成功的阶梯,行动越多,登得越高!∙第3,行动是成功的阶梯,行动越多,登得越高!∙…∙第100,行动是成功的阶梯,行动越多,登得越高!问题3:计算1到50乘以8.88的结果∙1×8.88 =8.88∙ 2 ×8.88 =17.76∙ 3 ×8.88 =26.64∙ 4 ×8.88 =35.52∙…∙50 ×8.88 =444诸如此类问题都是在反复执行的,在软件系统中可以通过循环这种语法结构来解决。

循环是程序设计语言中反复执行某些代码的一种计算机处理过程,是一组相同或相似语句被有规律的重复性执行。

对于循环来说,需要考虑两个要素,其一要素为循环体,也就是被反复执行的相同或相似的语句,其二要素为循环的条件,也就是循环得以继续执行下去的条件,常常以循环次数的方式体现。

常用的循环结构有:while、do-while、for。

1.2. while语句1.2.1. while语句的执行逻辑while语句是循环的一种常见语法结构,语法如下:1.while(boolean表达式){语句块;2.}while语句的执行过程为,首先计算boolean表达式的值,而后进行判断,若值为true则执行语句块,语句块执行完后再次判断boolean表达式的值,如果为true则继续执行语句块,如此循环往复,直到boolean表达式的值为false时退出while循环而执行while之后的语句。

C语言循环结构程序设计PPT课件

C语言循环结构程序设计PPT课件

知识点精讲
printf(″%d\n″,fun(″056a0″)); } 【解析】 while循环是先判断条件,如果条件成立就执行语句,然后回到条件继续判断,直 到条件不成立就结束循环。while后的表达式为“*s<=′9′&&*s>=′0′”,当表达式的值为0时 循环结束,可以看出这道题就是把连续的数字字符转换成对应的数值,遇到非数字字符就结束, 所以最后的输出结果是56。 【答案】 56
知识点ቤተ መጻሕፍቲ ባይዱ讲
L7 i++; L8 } L9 printf("%f",s); L10 }
答案:第6行改成:{ s=s+1.0/i; //若不使用1.0/i,那么会把小数部分丢掉//
4.下列程序的运行结果是______2_,_-_1_____ #include "stdio.h" main) {int i=2,a=0; while ( i一) a++; printf ("% d,%d",a,i); }
第四章 循环结构程序设计
考纲要求
结构化程序的设计方法,for语句、while语句编程方法。
知识准备
高频考点:当型循环与直到型循环、循环控制变量、利用循环设计算法。 重难点分析:利用循环设计算法。
知识点精讲
知识点1 while循环
真题回顾 (2019年真题)下列程序的运行结果是___________ #include″stdio.h″ int fun(char s[]){ int n=0; while(*s<=′9′&&*s>=′0′) { n=10*n+*s-′0′; s++; } return n; } main(){

Python程序设计 第4章 循环结构程序设计(第6次课)

Python程序设计 第4章 循环结构程序设计(第6次课)
(2)假设1个班级中有n名同学,统计男同学和女 同学各有多少名。该问题的求解需要重复执行n次, 对每1个同学依次进行判断,同时统计男同学和女 同学的人数。
Copyright © SWFU-CISD, 2012. All rights reserved. 1-8
计算机编程导论
4.2 循环结构概述
(3)给定2个整数,求它们的最大公约数和最小 公倍数。例如:给定6和9,求最大公约数时, 循环过程从6依次பைடு நூலகம்减至1,当循环到3时,判 断得6和9都能被3整除,于是终止循环,求得 最大公约数是3.;求最小公倍数时,循环过程 从9依次递增至54,当循环到18时,判断得18 同时能被6和9整除,于是终止循环,求得最小 公倍数是18。
练习: 1. 求1+3+5+…+99 2. 求2*4*6*…*12
Copyright © SWFU-CISD, 2012. All rights reserved.
1-21
计算机编程导论
第6次上机作业: 1.计算,参考值: S=1.718282 1 1 1 S 1 1*2 1*2*3 1*2*3*50 2.编程求斐波拉契数列的前20项,已知该数列 的第一、二项分别是0、1,从第三项开始,每 一项都是前两项之和。例如:0, 1, 1, 2, 3, 5, 8, 13……
Copyright © SWFU-CISD, 2012. All rights reserved. 1-12
输出 s 结束 图 4-3 累加若干整数值的框图
计算机编程导论
程序:
#Exp4_1.py print '请输入若干正整数进行求和操作,当输入负数时结束: ' s=0 x = input("请输入一个整数: ") while x >= 0: s=s+x x = input("请输入一个整数: ") print '整数之和=', s

第4章循环程序设计

第4章循环程序设计
▪ 循环结构的特点是:循环体内的代码可能被 反复执行多次。
▪ while语句和for语句都是先判断循环条件再决 定是否执行循环体,可能一次循环也不执行。
▪ do_ while语句则是先执行循环体再判断循环 条件,至少执行循环体一次。
▪ break和continue是循环的辅助语句, continue 只能用于循环语句。
▪ while、do_while、for可以相互嵌套,自由组 合。
例4-6:打印九九乘法表。
main( )
{ int i, j;
for(i=1; i<10; i++)
printf ( "%8d", i );
printf (" \n---------------------------------" );
}
说明: ▪ 当求累加值时,存放累加值的变量sum的初
值应该为0。 ▪ for括号中用两个分号分隔的三个表达式:
“表达式1”只在循环开始时执行一次;“表 达式2”是循环条件,在每一轮循环开始前进 行计算,如果结果为真则执行循环体,否则 退出for循环;“表达式3”用于循环变量的更 新。 ▪ 可以省略for语句括号中的一个或几个表达式, 但不能省略分号。
for语句的执行过程
表达式1
表达式2 真(非0)
语句序列
假(0)
表达式3
例4-4:从键盘上输入10个整数,求其和。
main( ) {
int i, num, sum; sum = 0; for(i=1; i<=10; i++) { scanf("%d", &num ); sum = sum + num; } printf("这10个整数的和为:%d", sum ); getch( );

第4章循环结构程序设计

第4章循环结构程序设计

提示: 使用Math.random()可以 产生0 ~ 1之间的随机数 int number=(int)(Math.rand om()*5); //产生0~4之间 的随机整数

方法二: import java.util.Scanner; public class Guess1 { public static void main(String[] args) { int count=0; //玩家猜对的次数 int guess; //玩家猜的数字 Scanner input = new Scanner(System.in); int i=1; //循环变量 while(i <= 3){ int number = (int)(Math.random()*5); //产生0~4之间的随机数 System.out.println("有一个0到4之间的整数,猜猜是什么?"); guess = input.nextInt(); //从键盘获取一个数字 if(guess == number){ System.out.println("猜对了!"); count++; }else { System.out.println("猜错了!"); } i++; } System.out.println("\n猜对"+count+"次!"); if(count==3||count==2) System.out.println("你太有才了!"); else if(count==1) System.out.println("很聪明呀!"); else System.out.println("多努力!"); } }

C语言程序设计(第3版)何钦铭-颜-晖-第4章-循环结构

C语言程序设计(第3版)何钦铭-颜-晖-第4章-循环结构

第4章循环结构【练习4-1】在例4-1 程序中,如果对item 赋初值0,运行结果是什么?为什么?如果将精度改为10-3,运行结果有变化吗?为什么?解答:如果对item 赋初值0,则程序运行结果是pi=0,因为item 为0 时不满足while 循环的执行条件,即不执行循环,故pi 值为0。

如果将精度改为10-3,运行结果会有变化,因为精度改变意味着while 循环的条件改变,精度变大使得while 循环次数减少,必然影响到π的值。

【练习4-2】运行例4-2 程序时,如果将最后一个输入数据改为-2,运行结果有变化吗?如果第一个输入数据是-1,运行结果是什么?为什么?解答:如果将最后一个输入数据改为-2,运行结果没有变化,因为最后一个负数是一结束标志,不进行统计,故任意一个负数都可以。

如果第一个输入数据是-1,运行结果是:Grade averageis 0,因为第一个输入就是-1,则while 循环条件不成立,不执行循环体。

【练习4-3】序列求和(1-1/4+1/7-1/10+1/13-1/16+…):输入一个正实数eps,计算序列1-1/4+1/7-1/10+1/13-1/16+…的值,精确到最后一项的绝对值小于eps (保留6位小数)。

试编写相应程序。

解答:#include <stdio.h>#include <math.h>int main(void){int denominator, flag;double item, s,eps;printf(“Input eps:”);scanf(“%lf”,&eps);flag = 1;denominator = 1 ;item = 1.0;s = 0;while(fabs (item) >= eps) {item = flag * 1.0 / denominator;s = s + item;flag = -flag;denominator = denominator +3;}printf ( “s = %f\n”, s);return 0;}【练习4-4】如果将例4-3 程序中的do-while 语句改为下列while 语句,会影响程序的功能吗?为什么?再增加一条什么语句,就可以实现同样的功能?while(number != 0){number = number / 10;count ++;}解答:会有影响,因为当输入数据number 为0 时,上述while 循环将不执行,count 值仍为0,故输出为0,不符合题目要求。

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

计算半径为1到10,且面积不大于100的圆的面积。 #include <stdio.h> #define PI 3.14 void main() { double r; int i; for(i=1;i<=10;i++) { r = PI * i * i; if (r>100) break; printf(“面积 是 %lf\n",r); } printf("for is end!\n"); }
4.1 循环结构简介
在第1章中已经简单介绍了循环结构,它和前面章 节中讲到的顺序结构、选择结构共同构成了各种复杂 程序的基本构造单元。循环结构的特点是:在给定条 件成立时,反复执行某程序段;在给定条件不成立时 ,循环停止。给定的条件称为循环条件,反复执行的 程序段称为循环体。 C语言中提供的四种循环语句主要实现了两种循环 结构:当型结构和直到型结构。
统计输入字符串中英文字母、空格、数字 和其他字符的个数。
#include "stdio.h" void main() { char c; int letters=0,space=0,digit=0,others=0; printf("please input some characters\n"); while((c=getchar())!='\n') { if(c>='a'&&c<='z'||c>='A'&&c<='Z') { letters++; } else if(c==' ') { space++; } else if(c>='0'&&c<='9') { digit++; } else { others++; } } printf("char=%d space=%d digit=%d others=%d\n", letters,space,digit,others); }
入口
入口
No
条件成立?
执行循环体
Yes 执行循环体 No 条件成立? Yes
出口
出口
先判断后执行:当型
先执行后判断:直到型
4.2 使用while循环
在C语言中,使用while循环以不定的次数执行 循环体内的一组语句。如果满足循环条件,反复执行 循环体中的语句序列,如果不满足结束循环。
FALSE 或 NULL
<condition> TRUE 可执行语句序列
4.2.1 while循环语法及含义
while循环语句用来实现“当型”循环结构。 while循环的一般格式如下所示: while(<condition>) { <可执行语句序列> } while循环的含义是:while循环是一个条件循环 ,只要循环条件求值结果为true,它就继续执行循环 体。
用for 语句实现循环
for语句最简单的应用形式也就是最易理解的如下形式: for(循环变量赋初值;循环条件;循环变量增值)
例如: for(i=1;i<=100;i++) sum=sum+i; 它相当于以下语句: i=1; while(i<=100) {sum=sum+i;i++;}
显然,用for语句简单、方便。
求出1*2*3*4*5的积
复习上节课所学的内容
用while语句实现51+53+55…69
例 用while语句求51+53+57…69 #include <stdio.h> void main() {int i,sum=0; i=51; while (i<=69) { sum=sum+i; i+=2; } printf(″%d\n″,sum); }
统计输入字符串中英文字母、空格、数字 和其他字符的个数。
编程基本思想:
声明一个字符型变量用来存放用户输入的字符 声明四个整形变量分别来存放“字母”“空格”“数字”“ 其他符号” 在屏幕上打印出一句话:请输入一段字符串 通过while循环判断输入的字符串,当判断到字符 为„\n‟时结束循环 字符为非„\n‟时根据字符类型把相应的整形变量+1 最后打印出统计出的各种字符数量
While和do-while语句的区别
#include <stdio.h> void main() {int i,sum=0; i=101; while (i<=100) { sum=sum+i; i++; } printf(″%d\n″,sum); }
#include <stdio.h> void main() {int i,sum=0; i=101; do { sum=sum+i; i++; } while (i<=100); printf(″%d\n″,sum); }
用for循环计算51+53+55…69
复习上节课所学的内容
使用for循环计算1~100所有2的倍数的数量以及它们之 和,所有3的倍数数量以及它们之和,所有5的倍数数量以及 它们之和。
#include "stdafx.h" void main() { int i,sum2=0,sum3=0,sum5=0,sum2all=0,sum3all=0,sum5all=0; for(i=1;i<=100;i++) { if(i%2==0) { sum2++; sum2all=sum2all+i; } if(i%3==0) { sum3++; sum3all=sum3all+i; } if(i%5==0) { sum5++; sum5all=sum5all+i; } } printf("%d %d\n",sum2,sum2all); printf("%d %d\n",sum3,sum3all); printf("%d %d\n",sum5,sum5all); }
例 用while语句求1到100的和 #include <stdio.h> void main() 运行结果:5050 {int i=1,sum=0; while (i<=100) { sum=sum+i; i++; } printf(″%d\n″,sum); }
说明:(1)循环体如果包含一个以上的语句,应该用花括弧括起来,以 复合语句形式出现.(2)在循环体中应有使循环趋向于结束的语句 。
4.4 使用for循环
for语句是C语言所提供的功能更强、使用更广泛 的一种循环语句。以固定的次数执行循环体内的一组 语句,特别适合已知循环次数的情况。
condition-1
FALSE
condition-2
TRUE 可执行语句序列
condition-3
4.4.1 for循环语法及含义
for循环语句用来实现“当型”循环结构。for循 环结构在循环开始的时候就已经知道循环的次数。循 环执行的次数由for关键字和( )中的范围边界安排决定 ,for循环的一般格式如下所示: for(<expression-1>;< condition-2>;< expression-3>) { <可执行语句序列> }
4.4.2 for循环的注意事项
在C语言编程中使用for循环语句要注意以下几个 方面: for语句中< expression -1>可以省略,但是其 后的分号不能省略。 for语句如果省略< condition-2>,即不判断循环 条件,循环无休止地进行下去,也就是认为循环条件 始终为真。 < condition-2>一般是关系表达式或者逻辑表达 式,也可以是数值表达式或者字符表达式,只要其值 非0,就执行循环体。
n
n 1
100
判断m是否素数。 运行结果: 17↙ #include "stdio.h" 17 is a prime number #include "math.h" main() {int i,n,flag=1; printf("Please Input a number:"); scanf("%d",&n); for (i=2;i<n;i++) {if (n%i==0) flag=0; break; } if(flag==1) printf("%d:is prime number!",n); else printf("%d:is not prime number!",n); }
4.7 跳转语句
C语言中体提供break、continue、goto语句三 种程序转移控制语句。这类非结构化语句都可以改变 程序的结构,使程序从其所在的位置转向另一处。
4.7.1 使用break语句实现程序跳转
在前面的章节中已经介绍过使用break语句可以 跳出switch选择结构,继续执行选择结构后的一个语 句。实际上,break语句还可以用来从循环体内跳出 循环体,提前结束循环。break语句的作用是终止最 近的while、do-while和for语句,程序的执行权被传 递给紧接着被终止循环之后的语句。其一般格式为: break;
4.7.2 使用continue语句实现程序跳转
continue语句被称为继续语句,它类似于break 语句,但不是退出循环,而是跳过循环体下面未执行 的语句,接着执行循环下一次迭代。其一般格式为: continue;
相关文档
最新文档