网站大量收购独家精品文档,联系QQ:2885784924

循环下课件.ppt

  1. 1、本文档共39页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
循环下课件.ppt

第12讲 循环程序设计(下) 主讲 刘彦华 《C语言程序设计》 第5章 循环结构程序设计 ? goto语句及其应用 ? while语句及其应用 ? do-while语句及其应用 ? for语句及其应用 ? break和continue语句的应用 ? 循环嵌套 本章内容要点 本章任务 在实际编程中,常常会利用循环结构重复执行某些操作。本章要完成的任务是处理一批学生成绩,要求计算出每个学生总分、平均分、最高总分、最低总分,并结合选择结构程序设计,按平均分输出及格人数和不及格人数。 例1 用格里高利公式求π的近似值 使用格里高利公式求π的近似值,要求精确到最后一项的绝对值小于10–4。 程序解析 while语句 例1 程序解析-求π的近似值 #include math.h main() { int denominator, flag; double item, pi; flag = 1; denominator = 1 ; item = 1.0; pi = 0; while(fabs (item) = 0.0001) { item = flag * 1.0 / denominator; pi = pi + item; flag = -flag; denominator = denominator +2; } pi = pi * 4; printf ( “pi = %f\n”, pi); } 例2 统计输入的一批学生的平均成绩 分析: 求累加和 确定循环条件 不知道输入数据的个数,无法事先确定循环次数 用一个特殊的数据作为正常输入数据的结束标志,比如选用一个负数作为结束标志。 #include stdio.h main() { int num; double grade, total; num = 0; total = 0; printf(“Enter grades: \n); scanf(%lf, grade); /* 输入第1个数*/ while (mark = 0) { /* 输入负数,循环结束 */ total = total + grade; num++; scanf (“%lf”, grade); } if(num != 0) printf(“Grade average is %.2f\n, total/num); else printf( Grade average is 0\n); } 例3 统计一个整数的位数 从键盘读入一个整数,统计该数的位数。 程序解析 do - while语句 例4程序解析-统计一个整数的位数 main() { int count, number; count = 0; printf(“Enter a number: ); scanf (%d, number) ; if (number 0) number = -number; do { number = number / 10; count ++; } while (number != 0); printf(It contains %d digits.\n, count); } 例5 判断素数 输入一个正整数m,判断它是否为素数。 程序解析 break语句 和continue语句 例5 判断素数输入一个正整数m,判断它是否为素数。 算法:除了1和m,不能被其它数整除。 设 i 取值 [2, m-1] 如果m不能被该区间上的任何一个数整除,即对每个i,m%i 都不为0,则m是素数 只要找到一个i,使m%i为0,则m肯定不是素数 m %2 %3 %4 %5 %(m-1) 不是素数 || =0 =0 是素数 !=0 !=0 m不可能被大于 m/2 的数整除 i 取值 [2, m-1] 、 [2, m/2] 、 [2, ] 例5 源程序-判断素数 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/

文档评论(0)

带头大哥 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档