d第四讲(第五章)循环控制.pptVIP

  • 5
  • 0
  • 约1.22万字
  • 约 41页
  • 2017-08-23 发布于广东
  • 举报
d第四讲(第五章)循环控制

第五章 循环控制 5.1 概述 一般需要使用循环的情况是: 有重复的动作 ( 循环体 ) 循环次数可以控制 ( 循环条件 ) 例如: 1+2+3+….+100 实现循环的语句: while do-while for 5.4 do-while语句,用来实现“直到型”循环 while 和 do-while 的比较 while 是先判别条件,再决定是否循环; do-while 是先循环一次,然后再根据循环的结果决定是否继续循环。 5.5 for 语句 1, 1, 2, 3, 5, 8, 13, …… f1 f2 fn f1 f2 fn f1 f2 fn while 和 for 语句的相互转换 while语句和for语句都是在循环前,先判断条件,再进入循环体,可互换使用: break 语句:从循环体里退出,中止循环。 While (exp1) { 语句1 if (exp2) break; 语句2 } continue 语句: 跳过continue后面的语句,继续下一次循环。 while (exp1) { 语句1 if (exp2) continue; 语句2 } 例5.4 判断m是否素数 定义: 除了1和自身m外,不能被其它数整除; 分析:首先排除m的数,设其它数为i, i 的取值区间为 [2, m-1] ,那么 如果m不能被该区间上的任何一个数整除, 即对每个i, m%i 都不为0, 则m是素数; 只要找到一个i, 使m%i为0, 则m肯定不是素数. void main() { int i, m; printf(Enter a number: ); scanf (%d, m); for ( i = 2; i = m/2; i++ ) if ( m % i == 0 ) break; if ( i m/2 ) printf(%d is a prime number! \n, m); else printf(No!\n); } 5.6 循环的嵌套 #include stdio.h int main() { int i, j; double item, sum; // item 存放阶乘 sum = 0; for ( i = 1; i = 100; i++ ) { item = 1; // 每次求阶乘都从1开始 for ( j = 1; j = i; j++ ) // 内层循环算出 item = i! item = item * j; sum = sum + item; } printf(1! + 2! + 3! + … + 100! = %e\n, sum); } 分析嵌套循环的执行过程 for(i = 1; i = 100; i++) { item = 1; for (j = 1; j = i; j++) item = item * j; sum = sum + item; } [例] 汽车里程表上的读数是95859,7小时之后里程表的读数是一个对称数 (最大是5位数),问汽车的速度(是一个整数)。 分析: 速度=路程/时间 检查所有的在95859到99999之间的对称数,如果它与95859的差能被7整除,则商是速度。 [例] 统计选票。现有选票如下: 3,1,2,1,1,3,3,2,1,2,3,3,2,1,1, 3,2,0,1,4,-1, -1是结束标志。设1选李, 2选张,3选王, 0和4为废票,谁会当选? 解题思路 1.每当我们读入一张选票,只有5种情况, 将它们加到相应的人选上; 2.-1结束循环; 3.case语句作为开关。 1.输入50个字符数字,而不是整数;char num; 2.50个字符的输入和50个数字的输入有区别: 字符可以连续输入50个: 009764146589…... 数字输入必须是用空格,

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档