第5章循环结构的程序设计 5.1推班结构趣的提出 5,2解单重据环的题 5.3解决多重据环的题 5.4简单的程过 点专此处结束放殃 4合
第5章 循环结构的程序设计 5.1 循环结构问题的提出 5.2 解决单重循环的问题 5.3 解决多重循环的问题 5.4 简单的程序调试
5.1循环结构问题的提出 在用计算机解决大量的实际问题时 经常会遇到如下许多重复运算的问题。 (1)求某一同学一学期的平均分。解 决方法是将该同学这一学期所有考核成绩 累加,再除以考核门数,就得到该生的平 均分。 点专此处结束放殃 4合
5.1 循环结构问题的提出 在用计算机解决大量的实际问题时, 经常会遇到如下许多重复运算的问题。 (1)求某一同学一学期的平均分。解 决方法是将该同学这一学期所有考核成绩 累加,再除以考核门数,就得到该生的平 均分
(2)计算:123…。这是一个累 乘的问题,每个乘数与前面的一个数都有 固定的关系(后面的数比前面的数大1)。 因此每次累乘的数都是前面的数加1,方法 相同,实际这是一个重复累乘的问题。 这一类问题,重复的次数有些情况是 已知的,有些情况是未知的。但是这些问 题都带有重复性的工作,解决这类问题, 采用循环结构最为适当 点专此处结束放殃 4合
(2)计算:1*2*3*…*n。这是一个累 乘的问题,每个乘数与前面的一个数都有 固定的关系(后面的数比前面的数大1)。 因此每次累乘的数都是前面的数加1,方法 相同,实际这是一个重复累乘的问题。 这一类问题,重复的次数有些情况是 已知的,有些情况是未知的。但是这些问 题都带有重复性的工作,解决这类问题, 采用循环结构最为适当
有些问题,采用单重循环就能解决, 比如上面所举的两个例子,都可以采用单 重循环;而有些问题,比如说二维表格数 据输出的问题,则需要采用双重循环才能 解决。 C语言提供了三种实现循环结构的语 句,它们分别是: while语句、 do-while语 句和for语句,三种循环语句各有不同的特 点,我们可以灵活使用。 点专此处结束放殃 4合
有些问题,采用单重循环就能解决, 比如上面所举的两个例子,都可以采用单 重循环;而有些问题,比如说二维表格数 据输出的问题,则需要采用双重循环才能 解决。 C语言提供了三种实现循环结构的语 句,它们分别是:while语句、do-while语 句和for语句,三种循环语句各有不同的特 点,我们可以灵活使用
52解决单重循环的问题 5.2.,1 while循环语句 while循环语句的形式如下 while(表达式)循环体语句 while循环语句的执行过程如图5-1所 小。 点专此处结束放殃 4合
5.2 解决单重循环的问题 5.2.1 while循环语句 while循环语句的形式如下: while(表达式)循环体语句 while循环语句的执行过程如图5-1所 示
表达式 作0 语句的执 循环体语句
图-51while 语句的执行
说明 (1)用whle语句构成的是“当型” 循环结构,它的特点是:“先判断,后执 行”,如果表达式的最初值为0,则循环体 语句一次也不执行。只有当表达式的值为 非0时,才能执行循环体语句。执行完循环 体语句后,再返回循环的开始部位,判断 表达式的值,决定是否继续循环。 点专此处结束放殃 4合
说明 (1)用while语句构成的是“当型” 循环结构,它的特点是:“先判断,后执 行” ,如果表达式的最初值为0,则循环体 语句一次也不执行。只有当表达式的值为 非0时,才能执行循环体语句。执行完循环 体语句后,再返回循环的开始部位,判断 表达式的值,决定是否继续循环
(2)循环体语句只能是一条语句,如 需要使用多条语句,必须采用复合语句的 形式。 (3)循环体内一定要有能够改变表达 式的值的操作,最终使其表达式的值变为0, 否则将形成无休止的“死”循环。 点专此处结束放殃 4合
(2)循环体语句只能是一条语句,如 需要使用多条语句,必须采用复合语句的 形式。 (3)循环体内一定要有能够改变表达 式的值的操作,最终使其表达式的值变为0, 否则将形成无休止的“死”循环
例51求:1+2+3+.+n的累加求和的 值 问题分析: (1)我们首先需要设置一个存放累加 求和的变量sum,每一次加一个数放入变 量sum中; (2)再设置一个存放加数的变量 每一次累加时被加的数均需比前一个数大1; (3)最后还需设置一个结束累加的变 量n,确定累加到什么数为止。 点专此处结束放殃 4合
例5.1 求:1+2+3+…+n的累加求和的 值。 问题分析: (1)我们首先需要设置一个存放累加 求和的变量sum,每一次加一个数放入变 量sum中; (2)再设置一个存放加数的变量i, 每一次累加时被加的数均需比前一个数大1; (3)最后还需设置一个结束累加的变 量n,确定累加到什么数为止
根据以上分析,写出源程序如下 main( i int i,n, sum; sum=U printf (" Please input n: scanf(%od", &n); while(i<=n)累加的数i小于或等 于终止数n就循环累加,否则结束循环 点专此处结束放殃 4合
根据以上分析,写出源程序如下: main ( ) { int i, n, sum; i=1; sum=0; printf (" Please input n : " ); scanf ("%d", &n ); while ( i<=n ) /* 累加的数i 小于或等 于终止数n就循环累加,否则结束循环*/