经典:C语言第四版课件第6章-循环控制
合集下载
C语言第四版课件第6章-循环控制
源程序: #include<stdio.h> void main( ) { int sum=0,i;
scanf(“%d”,&i); do { sum=sum+i;
i=i+1;} while ( i<=100 ); printf(“sum=%d\n”,sum); }
2021/8/2
14
while和do while循环
一般形式:do
语句; while(表达式)
#include <stdio.h> main() { int i,sum=0;
i=1; do { sum=sum+i;
i=i+1; } while(i<=100); printf("%d",sum); }2021/8/2
执行流程:
do
循环体
真(非0)
while expr
循环变量增值
i++;
goto loop;
}
printf("%d",sum);
}
循环条件 循环变量初值 循环变量终值
循环体
2021/8/2
6
循环的概念
循环程序设计:在满足循
环条件时,反复执行循环体 中的语句。
循环的特点:
循环体中的语句,在条件 满足的情况下,可反复执 行
循环构成:
1循环条件(循环变量)
goto 语句标号; ……
标号:语句;
#include <stdio.h> main() { int i,sum=0;
i=1; loop: sum+=i;
❖功能:无条件转移语句
❖作用:
工学第6章循环控制课件
❖ if +goto 语句(不符合结构化程序设计原则, 故一般不用)
❖ while 语句 ❖ do-while 语句 ❖ for 语句
Page 2
C语言 程序设计
第6章 循环控制
第6章 循环控制
举例 求1—100之间所有整数的和
开始
当
型
0→sum
循
1→i
环
否
i<=100
是
sum+i→sum
i+1→i
printf("\n");
}
}
Page 20
C语言 程序设计
第6章 循环控制
6.6 循环结构程序设计举例
举例:累加、连乘算法
❖累加算法之累加通式:
累加和变量=累加和变量+累加项
❖连乘算法之连乘通式:
连乘积变量=连乘积变量*连乘项
算法举例:
❖求和、求平均
❖求π的近似值
❖求n!
❖求1!+2!+ … +n!
C语言 程序设计
举例
第6章 循环控制
从键盘上输入若干个整数,求总和及平均值,输入-1结束
#include <stdio.h>
void main( )
{ int x, i=0; float sum=0, aver;
scanf("%d",&x);
while ( x!=-1 )
{sum+=x;
或 for (; x!=-1;)
格式:do 语句 while (表达式) ;
语句 循环体
循环体 直到条件成立时
典型的 直到型 循环
表达式 假(0) 真(非0)
❖ while 语句 ❖ do-while 语句 ❖ for 语句
Page 2
C语言 程序设计
第6章 循环控制
第6章 循环控制
举例 求1—100之间所有整数的和
开始
当
型
0→sum
循
1→i
环
否
i<=100
是
sum+i→sum
i+1→i
printf("\n");
}
}
Page 20
C语言 程序设计
第6章 循环控制
6.6 循环结构程序设计举例
举例:累加、连乘算法
❖累加算法之累加通式:
累加和变量=累加和变量+累加项
❖连乘算法之连乘通式:
连乘积变量=连乘积变量*连乘项
算法举例:
❖求和、求平均
❖求π的近似值
❖求n!
❖求1!+2!+ … +n!
C语言 程序设计
举例
第6章 循环控制
从键盘上输入若干个整数,求总和及平均值,输入-1结束
#include <stdio.h>
void main( )
{ int x, i=0; float sum=0, aver;
scanf("%d",&x);
while ( x!=-1 )
{sum+=x;
或 for (; x!=-1;)
格式:do 语句 while (表达式) ;
语句 循环体
循环体 直到条件成立时
典型的 直到型 循环
表达式 假(0) 真(非0)
c语言循环课件资料
例:求100 ~200之间的全部素数。 算法:枚举100 ~200之间的素数。
#include <stdio.h> int main() { int i,m; for(m=101; m<200; m=m+2) for (i=2 ; i<=m-1 ; i++) if (m % i==0) break; if (i==m) printf("Yes\n"); else printf("No\n"); return 0; }
使用说明:
1)循环变量应该在循环体外初值;
2)在while的循环体中一定要有改变循环变量的 值以使循环条件为假的语句,否则将形成死循 环;
1)循环变量、累加变量、累乘变量都 要在循环体外初值; 2)在循环体中要有改变循环变量的值 的语句。
例:累加
求:1+22+32+……+102 的值 #include "stdio.h" int main()
计算下一项t
pi=pi*4 输出pi
#include "math.h" int main( ) { int s; float n, t, pi; n=1.0; s=1; t=1.; pi=0; { pi=pi+t; n=n+2.0; s=-s; t=s/n; } printf("PI=%10.6f\n", pi*4); return 0; }
例3.14 5 6 7 8 9 10 for (x=0; x<=20; x++) for (y=0; y<=33; y++) { z=100-x-y; if (z%3==0 && 5*x+3*y+z/3==100)
C语言设计课件:第6章 循环控制
6.5 for语句
for 语句较前两种循环语句更简洁、更灵活, 特别是处理循环次数确定的问题。
for语句的语法格式为: for(表达式1;表达式2;表达式3)
循环体语句
其中,表达式1为赋初值表达式 表达式2为条件表达式 表达式3为循环变量增值表达式
例:求n! (n=10) int main( ) { int n,k,s=1;
scanf(“%d”,&n); i=1; s=0; do { s+=i; /*累加*/
i+=2; } while(i<=n); /*必须使用分号*/ printf(“s=%d”,s); }
课堂实践
1、从键盘上输入若干整数,求其中正偶 数之和。以-1作为输入结束标志。
#include "stdio.h" int main() {
scanf("%d", &n);while (n>0)
do
{ s+=n%10;
{ s+=n%10; n/=10;
n/=10;
}
}
while(n>0); printf("\n sum=%d", s);
printf("\n sum=%redt",ursn); 0;
return 0; }
}
课堂实践3
输入一个整数,求该数是几位数,按顺 序输出它的每一位数字(以空格分隔); 按逆序输出它的每一位数字(以空格分隔 )。
例:求s=1+3+5+…n (n为奇数且n>=1)
6.4 do…while语句
do_while语句的特点是“先执行循环体,后 判断循环条件”,当条件成立时继续执行循环 体,条件不成立时结束循环。
第六章循环控制PPT课件
环 while结构构成的。若图6.1中表达式值为真,则图6.1也与
一般形式:
图6.3
计
do
循环体语句
分号不能省
语句
while(表达式); 特点:先执行语句,后判断表达式。
非0
表达式
第 六
执行过程:先执行语句,再计算表达式,
0
章
为真时,继续执行语句,为假
循
时,退出循环。 (见图6. 3)
环
控
制
12
C
语 言
【例6.3 】求
100
i
传统流程图和N-S结构流程图如下:
i1
章
循
概况3
环
+ 您的内容打在这里,或者通过复制您的文本后。
控
制
C
语 言
6.1 概 述
程
序 设
在许多问题中需要用到循环控制。
计
例如,要输入全校学生成绩;求若干个数之和;
迭代求根等,几乎所有实用的程序都包含循环。
循环结构是结构化程序三种基本结构之一,它和
第 六
顺序结构、选择结构共同作为各种复杂程序的基
第 六
例如:goto
labeL1;是合法的。
章 而“goto l23;”是不合法的。
循
结构化程序设计方法主张限制使用goto语句,因为
环 滥用goto语句将使程序流程无规律、可读性差。但也不
控 制
是绝对禁止使用goto语句。
5
C
100
语 【例6.1 】用if和goto 语句构成循环,求 i。
言
i1
程
序
用do-while语句求对同一个问题可以用while语句处理,
C语言程序设计PPT课件 第6章
§6.4 do-while语句 语句
一般形式: 一般形式: do 语句 while (表达式 表达式) 表达式 直到型”循环结构。 特点:“直到型”循环结构。
先执行一次“语句” 后判“表达式” 先执行一次“语句”,后判“表达式”,当“表 达式” 达式 ” 非 0, 再执行 “ 语句 ” , 直到 “ 表达式 ” , 再执行“ 语句” 直到“ 表达式” 为0,循环结束。 ,循环结束。
100
i
。
i=1,sum=0 假 i<=100 真 sum=sum+i i=i+1
i = 1
main() { int i,sum=0; i = 1; loop: if (i <= 100) /*标号表示程序指令的地址 当i≤100时,执行加法 */ 标号表示程序指令的地址,当 标号表示程序指令的地址 时 { sum = sum + i; i++; goto loop; /*无条件转向标号 无条件转向标号loop处的指令 */ 无条件转向标号 处的指令 } printf("%d",sum); }
goto语句有两种用途,一是与if语句一起构成 goto语句有两种用途,一是与if 语句有两种用途 if语句一起构成
循环结构,另一是从循环体中跳转到循环体外。 循环结构,另一是从循环体中跳转到循环体外。
[例6.1] 用if语句和 例 语句和goto语句构成循环, 语句构成循环, 语句和 语句构成循环 求∑
§6.3 while语句 语句
一般形式: 表达式) 一般形式:while (表达式 语句 表达式 作用:实现“当型”循环。 作用:实现“当型”循环。
假 当P为真 为真 A
表达式” 当“表达式”非0(真)时, 执行while语句中的内嵌“语句”。语句 ”
计算机程序设计c语言第06章循环控制课件
2014-11-16
printf(“\n”); }
举例:
试找出满足下列条件的所有三位数 ① 其百位数不大于2 ② 将个位与百位对换,得到的三位数是原三位数的两 倍多 分析:
(1)三重循环,循环控制变量分 别表示百位数、十位数和个 位数 (3)n=100*i+10*j+k m=100*k+10*j+i (2)百位数i取值1~2 十位数j取值0~9
28
{ n=100*i+10*j+k; m=100*k+10*j+i;
if (m>=2*n&&m<3*n) {s++; printf(“%d ”,n);
2014-11-16
if (s%10==0) printf(“\n”); } }
七、几种循环语句的比较
while和do-while语句的表达式只有一个,for语句有 三个。 while 和for先判断循环条件后执行循环体,do-while 语句先执行循环体后判断循环条件。 while语句多用于循环次数不定的情况
几种循环的比较
break语句和countinue语句
2014-11-16
一、概述
循环就是在满足一定条件时重复执行一段程序 实现循环的语句有四种: 1. goto语句和if语句构成循环 2. while语句 3. do-while语句 4. for语句
3
(不提倡)
(当型循环——先判断后执行) (直到型循环——先执行后判断)
24
2014-11-16
六、循环的嵌套
一个循环体内包含着另一个完整的循环结构 内嵌的循环结构中又可以嵌套循环,从而构成多 重循环 三种循环可以互相嵌套
printf(“\n”); }
举例:
试找出满足下列条件的所有三位数 ① 其百位数不大于2 ② 将个位与百位对换,得到的三位数是原三位数的两 倍多 分析:
(1)三重循环,循环控制变量分 别表示百位数、十位数和个 位数 (3)n=100*i+10*j+k m=100*k+10*j+i (2)百位数i取值1~2 十位数j取值0~9
28
{ n=100*i+10*j+k; m=100*k+10*j+i;
if (m>=2*n&&m<3*n) {s++; printf(“%d ”,n);
2014-11-16
if (s%10==0) printf(“\n”); } }
七、几种循环语句的比较
while和do-while语句的表达式只有一个,for语句有 三个。 while 和for先判断循环条件后执行循环体,do-while 语句先执行循环体后判断循环条件。 while语句多用于循环次数不定的情况
几种循环的比较
break语句和countinue语句
2014-11-16
一、概述
循环就是在满足一定条件时重复执行一段程序 实现循环的语句有四种: 1. goto语句和if语句构成循环 2. while语句 3. do-while语句 4. for语句
3
(不提倡)
(当型循环——先判断后执行) (直到型循环——先执行后判断)
24
2014-11-16
六、循环的嵌套
一个循环体内包含着另一个完整的循环结构 内嵌的循环结构中又可以嵌套循环,从而构成多 重循环 三种循环可以互相嵌套
第6章循环控制.ppt
} while(i<=100); 循环终值
printf("%d\n",sum);
}
用do…while语句实现循环 (6.4)
第6章 循环控制
do…while语句
说明: while后面的表达式必须用括号括起。 循环体如果包含一个以上的语句,应该用花括弧括 起来,以复合语句形式出现。
至少执行一次循环体。流程图 循环体可以为空。 do~while可转化成while结构。(见图6.5 P116)
执行流程:
for语句等价于如下的while循环形式: 表达式1; while (表达式2)
{ 语句 表达式3;
}
用for语句实现循环 (6.5)
第6章 循环控制
for语句
for语句最简单的应用形式: for (循环变量赋初值; 循环条件; 循环变量增值)语句
100
例:用for循环求 n 。
正确设置循环控制条件。 is+u+m;=sum+i;
在循环体中应有使循环趋向} 于i+结+;束的语句。
printf("%d\n",sum);
}
用while语句实现循环 (6.3)
第6章 循环控制
应用举例
例1:输入//例一2行.求字两符个,正输整出数滤的去最其大中公空约格数字.符后的字符
计数法 条件判断法
循环结构概述 (6.1)
C语言可实现循环的语句:
goto 语句 (一般不用) while 语句 do…while 语句 for 语句
第6章 循环控制
用while语句实现循环 (6.3)
第6章 循环控制
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
12
do-while同 while语句的区别
while
假(0) expr
真(非0) 循环体
do
循环体
真(非0)
while expr
假(0)
循环控制在循环体之前, 只有当while后的表达式为 非0时,才可能执行循环体, 循环体有可能一次都不执 行。
总是先执行一次循环体,
然后再求表达式的值,因
此,无论表达式的值是0还
i++;
goto loop;
}
printf("%d",sum);
}
循环条件 循环变量初值 循环变量终值
循环体
6
循环的概念
循环程序设计:在满足循
环条件时,反复执行循环体 中的语句。
循环的特点:
循环体中的语句,在条件 满足的情况下,可反复执 行
循环构成:
1循环条件(循环变量) 2循环体
N
条件
Y 语句序列
3.标签只能加在可执行语句前面
4.限制使用goto语句
i++; goto loop; }
5
例:用if 和goto语句构成循环,求1+2+…+100
#include <stdio.h>
循环控制变量 main() { int i,sum=0;
i=1;
loop: if(i<=100)
{ sum+=i;
循环变量增值
goto 语句标号; ……
标号:语句;
#include <stdio.h> main() { int i,sum=0;
i=1; loop: sum+=i;
❖功能:无条件转移语句
❖作用:
1.用if 和goto语句构成循环
2.跳出多重嵌套循环
❖说明:
1.不能用整数作标号
}
2.标签只能出现在goto所在函数内,且唯一
是非0,循环体至少执行一
次。
13
while和do while循环比较
源程序: #include<stdio.h> void main( ) { int sum=0,i;
scanf(“%d”,&i); while ( i<=100 ) { sum=sum+i;
i=i+1;} printf(“sum=%d\n”,sum); }
printf(“%d”,i)15
for语句
一般形式
for([expr;expr;expr3]) 循环体语句;
#include <stdio.h> main() { int i,sum=0;
for(i=1;i<=100;i++) sum+=i;
scanf(“please input n:%d”,&n); i=1; while ( i<=n ) { s=s+i; i=i+1;} printf(“please output s=%d\n”,s); }
i=1;
n
N i<=10
Y
s=s+i; i=i+1;
输出s的值
11
do while语句构成的循环结构
i=1; while(i<=100) { sum=sum+i;
i++; } printf("%d",sum); }
循环条件
循环终值 循环体
While(i<=100) {
i++; sum=sum+i; }
10
例:求S=1+2+3+……+n 的值
源程序: #include<stdio.h> void main( ) { int i , s ,n;
……
语句序列
break
语句序列
循环后面下一条语句
7
while语句构成的循环结构
一般形式:
while(表达式) 语句;
循环体语句 可以是一条简单语句。 也可以是复合语句。
while (x>0) x--;
执行流程:
语句
#include<stdio.h>
void main( ) { int i , s ;
源程序: #include<stdio.h> void main( ) { int sum=0,i;
scanf(“%d”,&i); do { sum=sum+i;
i=i+1;} while ( i<=100 ); printf(“sum=%d\n”,sum); }
14
while和do while循环
c程序设计
第6章 循环控制
1
复习
复习: 程序的基本结构
START
顺序结构的特点:
1.每一条语句按顺序执行; 2.每一条语句只执行一遍, 不重复执行;
3.也没有语句不执行。Biblioteka 语句1 语句2 语句n……
END
2
复习: 程序的基本结构
复习:
分支结构的特点: 1.每一条执行了的语 句最多执行一遍。 2.不重复执行; 3.但有语句不执行。
N N
条件 条件
Y
Y
语句序列2… 语句语序句列序列1…
语句序列……
If语句后面的下一 条语句
If语句后面的下一条
语句
3
第6章 循环结构程序设计
主要内容: 循环的基本概念 while语句 do while语句 for 语句 循环的嵌套
4
goto 语句
goto语句及用goto构成循环 goto语句一般格式:
一般形式:do
语句; while(表达式)
#include <stdio.h> main() { int i,sum=0;
i=1; do { sum=sum+i;
i=i+1; } while(i<=100); printf("%d",sum); }
执行流程:
do
循环体
真(非0)
while expr
假(0)
i=0; do
i++; j=20; While(i<10); printf(“%d”,i);
do i=10;
While(x>10)
printf(“%d”,i);
i=0;x=11; While(x>10);
{i=++;x--;} printf(“%d”,i);
i=0;x=0 do
{ i++; x++;} While(x<10);
假(0) 条件
i=1;
真(非0)
while ( i<=10 ) 循环体语句 { s=s+i;
i=i+1;
}
printf(“please output s=%d\n”,s);
}
8
例:求S=1+2+3+……+10的值
源程序: #include<stdio.h> void main( ) { int i , s ;
i=1; while ( i<=10 ) { s=s+i; i=i+1;}
printf(“please output s=%d\n”,s); }
i=1;
N i<=10
Y s=s+i; i=i+1;
输出s的值
9
用while循环语句实现求1+2+…+100
循环 初值
循环变 量增值
#include <stdio.h> main() { int i,sum=0;