C语言第五章循环结构程序设计
合集下载
C语言第5章-循环结构程序设计PPT课件
sum=sum+i i++
当i<=10 (直到i>10) 输出sum
#include "stdio.h" int main() {
int i,sum; i=1; sum=0; do { sum=sum+i; i++; }while(i<=10);
至少执 行一次
循环体语句
真 表达式 假
说明
printf("sum=%5d\n",sum); return 0;
7
举例
例5.2 设s=1×2×3×……×n,求s不大于400000时 最大的n。
#include <stdio.h>
int main( )
{ int n=1; long int s=1;
前n项的乘积
P81
while(s<=400000)
{
n=n+1;
s=s*n;
}
printf("不大于400000时的最大n为:%d\ns值为:%ld\n",n-1,s/n);
输入:1 输出:sum=55 输入:11 输出:sum=0
sum=55 sum=11
什么情况下两 者结果相同?
11
§5.3 for语句
P87
格式 for (表达式1;表达式2;表达式3) 语句
for (循环变量赋初值;循环条件;循环变量增值) 语句
执行 过程
求解表达式1
假 表达式2
真 循环体语句
求解表达式3
一、实现循环结构的控制语句 二、循环嵌套 三、循环结构程序举例
1
• while语句 • do-while语句 • for语句 • break、continue语句 • 几种循环的比较
当i<=10 (直到i>10) 输出sum
#include "stdio.h" int main() {
int i,sum; i=1; sum=0; do { sum=sum+i; i++; }while(i<=10);
至少执 行一次
循环体语句
真 表达式 假
说明
printf("sum=%5d\n",sum); return 0;
7
举例
例5.2 设s=1×2×3×……×n,求s不大于400000时 最大的n。
#include <stdio.h>
int main( )
{ int n=1; long int s=1;
前n项的乘积
P81
while(s<=400000)
{
n=n+1;
s=s*n;
}
printf("不大于400000时的最大n为:%d\ns值为:%ld\n",n-1,s/n);
输入:1 输出:sum=55 输入:11 输出:sum=0
sum=55 sum=11
什么情况下两 者结果相同?
11
§5.3 for语句
P87
格式 for (表达式1;表达式2;表达式3) 语句
for (循环变量赋初值;循环条件;循环变量增值) 语句
执行 过程
求解表达式1
假 表达式2
真 循环体语句
求解表达式3
一、实现循环结构的控制语句 二、循环嵌套 三、循环结构程序举例
1
• while语句 • do-while语句 • for语句 • break、continue语句 • 几种循环的比较
第5章C语言程序设计的循环结构
20
5.8 循环结构程序设计实例
【例5-15】计算1-1/2+1/3+…-1/n-1+1/n的结果。 【例5-16】求1+2+3+…+n<m中最大的n值,并求和。 【例5-17】是一个按照规律翻译密码的例子。程序描述:翻译密
码的规律是将每一个字母变成它后面的字母,如将A变成B,Z变成 A,非字母字符不变,‘!’作为电文结束标志。例如,有一电文 “right”,翻译成“sjhiu”。 【例5-18】 花100块钱买100斤蔬菜。程序描述:西红柿每斤5元, 黄瓜每斤3元,白菜3斤一元,问100块钱买100斤蔬菜有几种解法。
(2)用while和do-while循环时,循环变量初始化的操作应在while和 do-while语句之前完成。而for语句可以在< expression-1>中实现循环 变量的初始化。
(3)for、while属“当型”循环,先判断,后执行循环体。因此当条件 一开始就不成立时,循环体就一次也不执行。这两种循环可以互相取代。 而do–while循环属“直到型”循环,先执行循环体,后判断。因此无论 条件是否成立,循环体至少要执行一次。
5.2.1 while循环的基本语法 5.2.2 while循环的使用实例
3
5.2.1 while循环的基本语法
while循环语句用来实现“当型”循环结构。while循环的一般格 式如下所示: while(<condition>) { <可执行语句序列> }
4
5.2.2 while循环的使用实例
21
5.9 小结
循环结构是C语言程序设计中一种非常重要的编程结构,用于让计 算机反复执行,完成大量类同的计算。主要包括while结构、dowhile结构、for结构和goto语句实现的循环结构,这4种结构可以 嵌套使用。本章主要讲述了这4种循环结构的语法和使用,并对这 4种循环结构进行了对比。
5.8 循环结构程序设计实例
【例5-15】计算1-1/2+1/3+…-1/n-1+1/n的结果。 【例5-16】求1+2+3+…+n<m中最大的n值,并求和。 【例5-17】是一个按照规律翻译密码的例子。程序描述:翻译密
码的规律是将每一个字母变成它后面的字母,如将A变成B,Z变成 A,非字母字符不变,‘!’作为电文结束标志。例如,有一电文 “right”,翻译成“sjhiu”。 【例5-18】 花100块钱买100斤蔬菜。程序描述:西红柿每斤5元, 黄瓜每斤3元,白菜3斤一元,问100块钱买100斤蔬菜有几种解法。
(2)用while和do-while循环时,循环变量初始化的操作应在while和 do-while语句之前完成。而for语句可以在< expression-1>中实现循环 变量的初始化。
(3)for、while属“当型”循环,先判断,后执行循环体。因此当条件 一开始就不成立时,循环体就一次也不执行。这两种循环可以互相取代。 而do–while循环属“直到型”循环,先执行循环体,后判断。因此无论 条件是否成立,循环体至少要执行一次。
5.2.1 while循环的基本语法 5.2.2 while循环的使用实例
3
5.2.1 while循环的基本语法
while循环语句用来实现“当型”循环结构。while循环的一般格 式如下所示: while(<condition>) { <可执行语句序列> }
4
5.2.2 while循环的使用实例
21
5.9 小结
循环结构是C语言程序设计中一种非常重要的编程结构,用于让计 算机反复执行,完成大量类同的计算。主要包括while结构、dowhile结构、for结构和goto语句实现的循环结构,这4种结构可以 嵌套使用。本章主要讲述了这4种循环结构的语法和使用,并对这 4种循环结构进行了对比。
C语言--第五章 循环结构程序设计
5.4 几种循环的比较
(1)三种循环都可以用来处理同一问题,一般情 况下它们可以互相代替。 (2)在while循环和do-while循环中,只在while 后面的括号内指定循环条件,因此为了使循 环能正常结束,应在循环体中包含使循环趋 于结束的语句(如i++,或i=i+1等)。
5.4 几种循环的比较
作用为结束本次循环,即跳过循环体中下面 尚未执行的语句,接着进行下一次是否执行 循环的判定. 一般形式: continue;
5.5 break语句和continue语句
continue和break的区别 break语句则是结束整个循环 过程,不再判断执行循环的条 件是否成立。 while(表达式1) for
5.2 用do-while语句实现循环
例5.2求1+2+...+n的值 #include <stdio.h> main() { int i,n,sum; printf(“n=”); scanf(“%d”,&i); sum=0; do { sum=sum+i; i++; } while (i<=10); printf(“sum=%d”,sum); }
第五章
主要内容
5.1 用while循环 6.4 用do-while语句实现循环 6.5 用for 语句实现循环 6.6 循环的嵌套 6.7 几种循环的比较 6.8 break语句continue和语句 6.9 程 序 举 例
5.1
用while语句实现循环
while语句用来实现“当型”循环结构 。
可以看到当输入i<=10,二者结果一样。 对于while循环,一次也不执行循环体 。而对do-while来说要执行一次。 因此用do-while循环时,应将条件取反 。把例5.2中的i<=10改为i>10。只有这 样才是对同一问题的两种表述。
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,将其放在循环 体中,则程序段写成:
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;
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;
C语言 第五章-循环结构程序设计
sum = 0 ; i = 1 ; for ( ;i <= 100 ; i ++ ) sum = sum + i ; i ++ )
例如: 例如:
例如: 例如:
for ( sum = 0 , i = 1 ; ; sum = sum + i ; for ( sum = 0 , i = 1 ; { sum = sum + i ; i ++ ; }
scanf ( “ %d ” , & num ) ; 其中: 表达式2 为算术表达式num num为 其中 : 表达式 2 为算术表达式 num % 2 。 当 num 为 奇数时循环执行scanf 奇数时循环执行scanf ( “ %d ” , & num )。
for语句一般形式中的 语句” 语句一般形式中的“ (3) for语句一般形式中的“语句”部分就是循环 它可以是一个单语句,也可以是一个复合语句。 体,它可以是一个单语句,也可以是一个复合语句。 如果不加{ },系统只将 for后面的一个单语句作为 系统只将for 如果不加 { }, 系统只将 for 后面的一个单语句作为 循环体。 循环体。 例如: 例如:for ( i = 1 ; { a = a + 1 ; b = b + 1 ; } i <= 10 ; i ++)
分析:九九乘法表 分析: 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 … 9×9=81 … … … 1× 9= 9 2×9=18 3×9=27
假设行号用i 标识, 列号用j 标识, 则第i 行 假设行号用 i 标识 , 列号用 j 标识 , 则第 i 列的值正好就是i 的乘积。 第 j 列的值正好就是 i 与 j 的乘积 。 i 与 j 定义为整 型变量。 型变量。
例如: 例如:
例如: 例如:
for ( sum = 0 , i = 1 ; ; sum = sum + i ; for ( sum = 0 , i = 1 ; { sum = sum + i ; i ++ ; }
scanf ( “ %d ” , & num ) ; 其中: 表达式2 为算术表达式num num为 其中 : 表达式 2 为算术表达式 num % 2 。 当 num 为 奇数时循环执行scanf 奇数时循环执行scanf ( “ %d ” , & num )。
for语句一般形式中的 语句” 语句一般形式中的“ (3) for语句一般形式中的“语句”部分就是循环 它可以是一个单语句,也可以是一个复合语句。 体,它可以是一个单语句,也可以是一个复合语句。 如果不加{ },系统只将 for后面的一个单语句作为 系统只将for 如果不加 { }, 系统只将 for 后面的一个单语句作为 循环体。 循环体。 例如: 例如:for ( i = 1 ; { a = a + 1 ; b = b + 1 ; } i <= 10 ; i ++)
分析:九九乘法表 分析: 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 … 9×9=81 … … … 1× 9= 9 2×9=18 3×9=27
假设行号用i 标识, 列号用j 标识, 则第i 行 假设行号用 i 标识 , 列号用 j 标识 , 则第 i 列的值正好就是i 的乘积。 第 j 列的值正好就是 i 与 j 的乘积 。 i 与 j 定义为整 型变量。 型变量。
C语言程序设计第5章-循环结构程序设计ppt课件
分析:循环进行的条件是:i≤k和flag=0。因为在i>k时, 显然不必再去检查n是否能被整除,此外如果flag=1, 就表示n已被某一个数整除过,肯定是非素数无疑, 也不必再检查了。只有i≤k和flag=0两者同时满足才 需要继续检查。循环体只有一个判断操作:判断n 能否被i整除,如不能,则执行i=i+1,即i的值加1, 以便为下一次判断作准备。如果在本次循环中n能 被i整除,则令flag=1,表示n已被确定为非素数了, 这样就不再进行下一次的循环了。如果n不能被任 何一个i整除,则flag始终保持为0。因此,在结束 循环后根据flag的值为0或1,分别输出n是素数或非 素数的信息。
while(i<=k && !flag)
if(n % i==0) flag=1;
else i=i+1;
if(!flag)
printf("%d is a prime
number.\n",n);
else
printf("%d is not a prime
number.\n",n);
}
.
返回本章首页
第5章 循环结构程序设计
【例5_1】用while语句求p=n!
#include<stdio.h>
int main()
{ int i=1,p=1; //循环初始化部分 while(i<=5) //循环控制部分
{ p=p*i; //循环体语句 i++; //循环修改部分
}
printf("5!=%d\n",p);
return 0;
10-3,则再执行循环体,把 term 值赋给term1.然后再累加 到s中去。可以看出:程序中 term1代表当前要累加的项, term代表下一项,如果这两项 之差未超过10-3,就将下一项 加到s 中。
while(i<=k && !flag)
if(n % i==0) flag=1;
else i=i+1;
if(!flag)
printf("%d is a prime
number.\n",n);
else
printf("%d is not a prime
number.\n",n);
}
.
返回本章首页
第5章 循环结构程序设计
【例5_1】用while语句求p=n!
#include<stdio.h>
int main()
{ int i=1,p=1; //循环初始化部分 while(i<=5) //循环控制部分
{ p=p*i; //循环体语句 i++; //循环修改部分
}
printf("5!=%d\n",p);
return 0;
10-3,则再执行循环体,把 term 值赋给term1.然后再累加 到s中去。可以看出:程序中 term1代表当前要累加的项, term代表下一项,如果这两项 之差未超过10-3,就将下一项 加到s 中。
C语言-循环结构程序设计课件
{
int i=1,sum=0;
while (i<=100)
{少
不能 复合语句
sum= sum+ i;
i++; }
不能丢,否则循环 永不结束
printf("sum=%d“,sum);
return 0;
}
6
5 . 1 用 while 语 句 实 现 循 环
• 要求输出 100 ~ 200 之间的能被 3 整除的数。
n+ + ; } return 0;
}
7
思考和总结:循环必须包含的几个要素?
int main()
表达式1:初始化
{
int i=1,sum=0;
表达式2:判断循环是 否继续的条件
while (i< =100) {
✓循环变量初始化
sum= sum+ i; i++; } printf("sum=%d“, sum);
l一个表达式内可以包含多 个,用逗号隔开。
(1) for(sum=0, i=1; i<=100; i++) sum=sum+i;
(2) int i,j; for(i=0,j=100 ; i<=j; i++,j-- ) k=i+j;
l表 达 式 可 省 略 ( 1 至 3 ) , 但“; ”不能省略。
编程思路:
① 对100到200之间的每一个整 数进行检查
② 如果能被3整除,输出,否 则不输出
③ 直到200为止
# include< stdlib. h> int main( )
{
int n=100; while( n< = 2 0 0 ) {
c语言第5章循环结构程序设计课件
6
第五章 循环结构程序设计
典型例题(例5-8) :求两个整数的最大公约数、最小公倍数
12 8 4 mn r
84
0
mn r
最大公约数 4 最小公倍数 12*8/4=24
求最大公约数的N-S流程图
辗转相除法
7
第五章 循环结构程序设计
void main( )
{ int n, m, nm, r, t; printf( " Enter m, n= ? " ) ; scanf( " % d% d" , & m, & n) ; nm= n* m; if ( m< n)
例如: for(i=1;i<=n;) { t=t*i; i++; } (4)可以省略表达式1和表达式3,只有表达式2 , 即只给循环条件。
i=1; for(;i<=n;)
{t=t*i; i++;}
14
第五章 循环结构程序设计
(5) 3个表达式都可省略。 例如: for(;;) 语句 相当于 while(1)语句。
3
第五章 循环结构程序设计
例: 编程序求: s=1+2+3+……+100
main()
{ int s=0,i=1;
while (i<=100) { s=s+i;
思考:如何求n!
i++; }
printf("S=%d",s); }
4
第五章 循环结构程序设计 二、 do...while语句
Do-while语句的一般形式为:
(1) while( ) {… while( ) {…}
第五章 循环结构程序设计
典型例题(例5-8) :求两个整数的最大公约数、最小公倍数
12 8 4 mn r
84
0
mn r
最大公约数 4 最小公倍数 12*8/4=24
求最大公约数的N-S流程图
辗转相除法
7
第五章 循环结构程序设计
void main( )
{ int n, m, nm, r, t; printf( " Enter m, n= ? " ) ; scanf( " % d% d" , & m, & n) ; nm= n* m; if ( m< n)
例如: for(i=1;i<=n;) { t=t*i; i++; } (4)可以省略表达式1和表达式3,只有表达式2 , 即只给循环条件。
i=1; for(;i<=n;)
{t=t*i; i++;}
14
第五章 循环结构程序设计
(5) 3个表达式都可省略。 例如: for(;;) 语句 相当于 while(1)语句。
3
第五章 循环结构程序设计
例: 编程序求: s=1+2+3+……+100
main()
{ int s=0,i=1;
while (i<=100) { s=s+i;
思考:如何求n!
i++; }
printf("S=%d",s); }
4
第五章 循环结构程序设计 二、 do...while语句
Do-while语句的一般形式为:
(1) while( ) {… while( ) {…}
C语言程序设计循环结构程序设计
假
体现式
真
语句
假如体现式旳值一开始就为0,则语 句一次也不会被执行。
上一页
下一页
while语句举例
问题: 求学生旳平均成绩,以输入负数成绩为结束
算法分析:
1. 定义变量score存储学生成绩,定义s=0存储累加旳成绩,
定义n=0统计录入旳成绩数目。
2. 输入第一种学生旳score
3. 若score>=0,执行第4步,不然执行第7步
上一页
下一页
例: 求 1+2 +…+99
分析:用变量i从1到99循环, 把i旳值累加到变量s中,最 终输出s旳值。
程序如下:
#include<stdio.h> main( ) { int i,s=0;
for(i=1;i<=99;i++) s=s+i;
printf(“s=%d”,s); }
上一页
下一页
在某些情况下,for语句中旳体现式1、2、3都能够 省略,而改用其他旳方式来实现这些功能。我们还用 上面旳例子阐明for语句省略体现式旳情形。
上一页
下一页
1.省略体现式1: #include<stdio.h> main( ) { int i=1,s=0;
for(;i<=99;i++) s=s+i;
因为do-while语句至 少要被执行一次,特
别要注意n和s旳取值 问题!
s=s+score;
}while(score>=0);
if(n>1) printf (“ \n %f” ,(s-score)/(n-1));
else printf(“no student score!”);
C语言程序设计课件第5章 循环结构程序设计
完整版ppt
19
➢break语句的一般形式为: break;
只能用于循环语句和switch 语句之中,而不能单独使用
完整版ppt
20
5.5.2 用continue语句提前结束 本次循环 P126
➢ continue语句的一般形式为:
continue;
➢其作用为结束本次循环,即跳过循环体 中下面尚未执行的语句,接着进行下一 次是否执行循环的判断。
循环体
完整版ppt
7
while语句的一般形式如下:
while (表达式) 语句
循环条件表达式
“真”时执行循环体语句 “假”时不执行
表达式
0(假)
while循环的特点是: 先判断条件表达式 后执行循环体语句
非0(真) 语句
完整版ppt
8
P117
5.2.2 用do…while语句实现循环
➢do---while语句的特点:先无条件地执
第5章 循环结构程序设计 P115
5.1 程序中需要用循环结构
5.2 用while语句和do…while语句实现循环 5.3 用for语句实现循环
5.4 循环的嵌套
5.5 提前结束循环
5.6 几种循环的比较
5.7 程序举例
5.8 提高部分
完整版ppt
1
5.1 程序中需要用循环结构 P115
➢现实生活中许多问题是需要重复处理
➢for语句的一般形式为 for(表达式1;表达式2;表达式3) 语句
作为循环的调整器,例如 使循环变量增值,它是在 执行完循环体后才进行的
完整版ppt
14
➢for语句的执行过程:
(1) 先求解表达式1 (2) 求解表达式2,若其值为真,执行循环体, 然后执行下面第(3)步。若为假,则结束循环, 转到第(5)步 (3) 求解表达式3 (4) 转回上面步骤(2)继续执行 (5) 循环结束,执行for语句下面的一个语句
c语言课件-第五章-循环结构程序设计
5.5 for语句(当型循环)
例:读程序,判断程序的功能 #include<stdio.h> void main( ) {char c; for(;(c=getchar( ))!=‘\n’;) putchar(c); } 输入ok!<回车>,输出_______
读入一个字符,当它不是回车符就输出.
5.5 for语句(当型循环)
分析:用辗转相除法求最大公约数。
5.3 while语句(当型循环)
5.3 while语句(当型循环)
例:利用while语句计算1+1/2+1/4+1/6…+1/50.
解:观察数列1,1/2,1/4,1/6…,1/50。
分子全部为1,分母除第一项外,全部是偶数。 同样考虑用循环实现。
其中累加器用sum表示(初值设置为第一项1,以 后不累加第一项),循环控制用变量i(i:2-50)控 制,数列通项:1/i。
5.2 goto语句及用goto构成循环
一、goto语句 goto语句的一般形式:goto 语句标号
语句标号:用于定义程序中的某个位置 用标识符表示,不能只用数字
如:goto start(对) goto 20(错)
goto语句的功能是无条件地转到标号所指的语句。
因为滥用goto语句会破坏结构化,所以应该限制 使用goto语句。
i=1 for(; i<=3; )
{ s=s+k; i++; }
i=1 while (i<=3)
{ s=s+k; i++; }
5.5 for语句(当型循环)
(6)表达式2一般是关系表达式或逻辑表达式,但 也可以是数值表达式或字符表达式,只要其值不等于 0就执行循环体。
C语言程序设计第5章循环结构程序设计简明教程PPT课件
第5章
循环结构程序设计
第5 章
循环结构程序设计
当你对C语言程序设计有了一定了解和掌握后,若 想要处理一些更复杂的任务时,当满足某一条件想反 复执行某个程序时,该如何处理呢?
控制语句能够控制程序的流程,根据判断决 定重复运行什么。
程序的三种结构
•顺序结构 •选择结构 •循环结构
本章所
学Байду номын сангаас目标
了解循环结构的特点; 掌握while语句、do-while语句、for语句; 掌握while循环结构、do-while循环结构、for循 环结构 掌握break和continue语句的使用; 理解循环嵌套。 掌握各种循环的应用;
C语言程序设计
第5章 循环结构程序设计
4
【例5.1】输入10个数,求它们的和并输出。
#include <stdio.h> int main() { float x,sum=0; int k=0; while(k<10) { printf("please input x:\n"); scanf("%f",&x); //输入一个数 sum=sum+x; //进行累加 k++; } printf("sum=%f\n",sum); return 0; } 运行结果: please input x:5↙ please input x:7↙ please input x:8↙ please input x:14↙ please input x:53↙ please input x:12↙ please input x:35↙ please input x:9↙ please input x:10↙ please input x:47↙ sum=200
循环结构程序设计
第5 章
循环结构程序设计
当你对C语言程序设计有了一定了解和掌握后,若 想要处理一些更复杂的任务时,当满足某一条件想反 复执行某个程序时,该如何处理呢?
控制语句能够控制程序的流程,根据判断决 定重复运行什么。
程序的三种结构
•顺序结构 •选择结构 •循环结构
本章所
学Байду номын сангаас目标
了解循环结构的特点; 掌握while语句、do-while语句、for语句; 掌握while循环结构、do-while循环结构、for循 环结构 掌握break和continue语句的使用; 理解循环嵌套。 掌握各种循环的应用;
C语言程序设计
第5章 循环结构程序设计
4
【例5.1】输入10个数,求它们的和并输出。
#include <stdio.h> int main() { float x,sum=0; int k=0; while(k<10) { printf("please input x:\n"); scanf("%f",&x); //输入一个数 sum=sum+x; //进行累加 k++; } printf("sum=%f\n",sum); return 0; } 运行结果: please input x:5↙ please input x:7↙ please input x:8↙ please input x:14↙ please input x:53↙ please input x:12↙ please input x:35↙ please input x:9↙ please input x:10↙ please input x:47↙ sum=200
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算s=1+21+22+23+……+263算出小麦的颗粒数。1立方米小 麦大约1.42*108粒
continue; printf("%3d",n); j++; if (j%5==0) printf("\n"); } printf("\n j=%d\n",j); }
2.设计性实验 1)从键盘输入若干学生的成绩,输出最高和最低成绩,当输入负数 时结束,请将程序补充完整。
#include <stdio.h> main() { float x,amax,amin;
printf("please input m&n:"); scanf("%d%d",&m,&n); if(m<n) __①__ r=m%n; while(r) { m=n;
n=r; r=__②__;} printf("%d\n",n); }
4)下列程序求n以内所有因子的平方和,请将程序补 充完整。
10)相传古代印度国王舍罕要褒奖他的聪明能干的宰相达依 尔(国际象棋发明者),问他需要什么,达依尔回答说: “国王只要在国际象棋的棋盘上第一个格子放1粒麦子,第二 个格子放2粒麦子,第三个格子放4粒麦子,以此类推,每一 格加一倍,一直放到64格,我就感恩不尽了,”。国王答应 了,结果全印度的粮食用完还不够。国王很纳闷,怎么也算 不清这笔账。现在用C语言编程来算一下。
上机实验
一、实验目的
1.掌握while、do while和for循环结构 的用法以及循环条件的构造; 2.能够掌握循环结构程序设计。
二、实验内容
1.验证性实验 1)求1+2+3+4+5+…+100之和,验证程序运行结果。 #include <stdio.h> main() {
int i,sum; sum=0; i=1; while (i<=100) { sum=sum+i;
int i,m; double s=1.0; scanf("%d",&m); for(i=1;i<=__①__;i++)
s=s-log(i); /*计算s=1-ln(1)-ln(2)-ln(3)-…-ln(m)*/ printf("%f",s); }
8)输入一个整数,判断是否是素数,若为素数输出1,否则 输出0,请将程序补充完整。 #include <stdio.h> main() {
#include <stdio.h> main() { int i,n;
long s=0; scanf("%d",&n); for(i=2;i<=n-1;i++) /*从2~n-1中找n的所有因子*/
if(__①__) s+=__②__; /*将所有因子的平方和*/
printf("s=%d",s); }
int i, x, y=1; scanf("%f",&x); for(i=2; i<=x/2; i++)
if__①__{ y=0; break;} printf("%d\n", y); }
9)数字猜谜游戏。 也许很多人小时候都玩过这样一个猜数字的游戏:一个小朋友 手里握着一张纸牌,由其他小朋友猜牌面的数字。如果猜错 了,就对猜错的小朋友做一些诸如“刮鼻子”之类的惩罚动作; 如果猜对了,得到的奖励就是由猜对的小朋友去执行惩罚动 作。要求将上述游戏用计算机模拟执行。
5)输出1到1000之内能被5或13整除、但不能 同时被5和13整除的整数,请将程序补充完整。 #include <stdio.h> main() {
int i,j=0; for(i=1;i<=1000;i++)
if(__①__) printf("%4d",i);
}
6)计算S=(1+1/2)+(1/3+1/4)+…+(1/(2n-1)+1/2n),请 将程序补充完整。
2)根据以下公式求p的值,结果由函数值返回。m与n为两 个正数且要求m>n。请将程序补充完整。
#include <stdio.h> main() { int i,m,n;
double p=1.0;
P m! n!(m n)!
scanf("%d%d",&m,&n);
for(i=1;i<=m;i++) p=__①__; /*求m!*/
第5章 循环结构程序设计
本章要点 ➢while、do…while、for三种循环语句 ➢continue和break语句 ➢循环的嵌套 ➢循环结构程序的应用举例 学习方法建议: 学习本章内容时,应重点掌握三种循环语句的基本流程,并在此基础 上理解循环嵌套的应用。要求多读程序,理解编程的算法、编程的思 路,并仿照例题多编程序、上机练习,真正掌握循环结构程序的设计。
#include <stdio.h> main() {
int i,n; double s=0.0; for(i=1;i<=n;i++)
s=s+__①__; printf("%f",s); }
7)计算s=1-ln(1)-ln(2)-ln(3)-…-ln(m) ,请将程序补充完整。 #include <math.h> main() {
scanf("%f",&x); amax=x; amin=x; while(__①__) { if (x>amax) amax=x;
else if (__②__) amin=x; else scanf("%f",&x); }
printf ("\n amax=%f\n amin=%f\n",amax,amin); }
i++;} printf("1+2+3+...+100=%d\n",sum) ; }
修改上面的程序,实现1~100间所有偶数之和。
2)运行下列程序,说明程序的功能。 #include "stdio.h" main( ) {
int n,j=0; for(n=1;n<=100;n++) { if (n%7!=0)
for(i=1;i<=n;i++) p=__②__; /*求m!/n!*/
for(i=1;i<=m-n;i++) p=p/i; /*求m!/(n!(m-n)!)*/
printf("%f",p);
}
3)下面程序的功能是用“辗转相除法”求两个正数M和N的 最大公约数,将程序补充完整。
#include <stdio.h> main() { i
continue; printf("%3d",n); j++; if (j%5==0) printf("\n"); } printf("\n j=%d\n",j); }
2.设计性实验 1)从键盘输入若干学生的成绩,输出最高和最低成绩,当输入负数 时结束,请将程序补充完整。
#include <stdio.h> main() { float x,amax,amin;
printf("please input m&n:"); scanf("%d%d",&m,&n); if(m<n) __①__ r=m%n; while(r) { m=n;
n=r; r=__②__;} printf("%d\n",n); }
4)下列程序求n以内所有因子的平方和,请将程序补 充完整。
10)相传古代印度国王舍罕要褒奖他的聪明能干的宰相达依 尔(国际象棋发明者),问他需要什么,达依尔回答说: “国王只要在国际象棋的棋盘上第一个格子放1粒麦子,第二 个格子放2粒麦子,第三个格子放4粒麦子,以此类推,每一 格加一倍,一直放到64格,我就感恩不尽了,”。国王答应 了,结果全印度的粮食用完还不够。国王很纳闷,怎么也算 不清这笔账。现在用C语言编程来算一下。
上机实验
一、实验目的
1.掌握while、do while和for循环结构 的用法以及循环条件的构造; 2.能够掌握循环结构程序设计。
二、实验内容
1.验证性实验 1)求1+2+3+4+5+…+100之和,验证程序运行结果。 #include <stdio.h> main() {
int i,sum; sum=0; i=1; while (i<=100) { sum=sum+i;
int i,m; double s=1.0; scanf("%d",&m); for(i=1;i<=__①__;i++)
s=s-log(i); /*计算s=1-ln(1)-ln(2)-ln(3)-…-ln(m)*/ printf("%f",s); }
8)输入一个整数,判断是否是素数,若为素数输出1,否则 输出0,请将程序补充完整。 #include <stdio.h> main() {
#include <stdio.h> main() { int i,n;
long s=0; scanf("%d",&n); for(i=2;i<=n-1;i++) /*从2~n-1中找n的所有因子*/
if(__①__) s+=__②__; /*将所有因子的平方和*/
printf("s=%d",s); }
int i, x, y=1; scanf("%f",&x); for(i=2; i<=x/2; i++)
if__①__{ y=0; break;} printf("%d\n", y); }
9)数字猜谜游戏。 也许很多人小时候都玩过这样一个猜数字的游戏:一个小朋友 手里握着一张纸牌,由其他小朋友猜牌面的数字。如果猜错 了,就对猜错的小朋友做一些诸如“刮鼻子”之类的惩罚动作; 如果猜对了,得到的奖励就是由猜对的小朋友去执行惩罚动 作。要求将上述游戏用计算机模拟执行。
5)输出1到1000之内能被5或13整除、但不能 同时被5和13整除的整数,请将程序补充完整。 #include <stdio.h> main() {
int i,j=0; for(i=1;i<=1000;i++)
if(__①__) printf("%4d",i);
}
6)计算S=(1+1/2)+(1/3+1/4)+…+(1/(2n-1)+1/2n),请 将程序补充完整。
2)根据以下公式求p的值,结果由函数值返回。m与n为两 个正数且要求m>n。请将程序补充完整。
#include <stdio.h> main() { int i,m,n;
double p=1.0;
P m! n!(m n)!
scanf("%d%d",&m,&n);
for(i=1;i<=m;i++) p=__①__; /*求m!*/
第5章 循环结构程序设计
本章要点 ➢while、do…while、for三种循环语句 ➢continue和break语句 ➢循环的嵌套 ➢循环结构程序的应用举例 学习方法建议: 学习本章内容时,应重点掌握三种循环语句的基本流程,并在此基础 上理解循环嵌套的应用。要求多读程序,理解编程的算法、编程的思 路,并仿照例题多编程序、上机练习,真正掌握循环结构程序的设计。
#include <stdio.h> main() {
int i,n; double s=0.0; for(i=1;i<=n;i++)
s=s+__①__; printf("%f",s); }
7)计算s=1-ln(1)-ln(2)-ln(3)-…-ln(m) ,请将程序补充完整。 #include <math.h> main() {
scanf("%f",&x); amax=x; amin=x; while(__①__) { if (x>amax) amax=x;
else if (__②__) amin=x; else scanf("%f",&x); }
printf ("\n amax=%f\n amin=%f\n",amax,amin); }
i++;} printf("1+2+3+...+100=%d\n",sum) ; }
修改上面的程序,实现1~100间所有偶数之和。
2)运行下列程序,说明程序的功能。 #include "stdio.h" main( ) {
int n,j=0; for(n=1;n<=100;n++) { if (n%7!=0)
for(i=1;i<=n;i++) p=__②__; /*求m!/n!*/
for(i=1;i<=m-n;i++) p=p/i; /*求m!/(n!(m-n)!)*/
printf("%f",p);
}
3)下面程序的功能是用“辗转相除法”求两个正数M和N的 最大公约数,将程序补充完整。
#include <stdio.h> main() { i