[工学]C语言循环结构程序设计2.ppt

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

循环程序设计(2) 循环程序设计 上周内容回顾 While(条件) 循环体 Do {……} while(条件) For(初始化表达式;条件;修正表达式) 循环程序设计 例4:猜数游戏( ch6_004) 编写一道猜数的程序,在程序中预设一个数字,要求用户任意从键盘输入一个价格(数字),由程序在屏幕上给出“高了”或者“低了”的提示,当用户输入数字等于目标数,程序结束。 /*例4:猜数游戏。 ch6_004 */ #define GOAL 648 main() { int data; do { printf(Please input data:\n); scanf(“%d”,data);/*输入任意一个数字到data*/ if (dataGOAL) printf(Its too big,please try again!\n); else if(dataGOAL) printf(Its too small,please try again!\n); else printf(You are right!Bye-bye!); } while (data!=GOAL); } break语句和continue 1.break语句 2、continue 语句 #include stdio.h void main() {int a, b; for(a=1,b=1; a=10; a++) {if(b=10) break; if(b%3==1) {b+=3; continue;} } printf(%d\n,a); } 循环程序设计(循环嵌套) 例7:打印如下所示等腰三角形() * *** ***** ******* ********* 循环程序设计(循环嵌套) 循环嵌套 在循环体语句中又包含有另一个完整的循环结构的形式,称为循环的嵌套。如果内部的循环体中又有嵌套的循环语句,则构成多重循环。 循环嵌套 例8ch6_008 :百钱买百鸡。(鸡翁一值钱五,鸡母一值钱3,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何? 循环嵌套 枚举或穷举算法:按问题本身的性质,一一列举出该问题所有可能的解,并在逐一列举的过程中,检验每个可能解是否是问题的真正解,若是,我们采纳这个解,否则抛弃它。对于所列举的值,既不能遗漏也不能重复。 循环嵌套 例 、搬砖问题:36块砖,36人搬,男搬4,女搬3,两个小孩抬一块砖。要求一次全搬完,问男、女、小孩各若干? 循环程序设计 使用枚举法,主要掌握两条原则: 1、确定有哪些信誉好的足球投注网站范围。 2、选择有哪些信誉好的足球投注网站策略。 有哪些信誉好的足球投注网站策略选择得好坏,直接决定程序的工作量的大小。 循环程序设计 请思考下面程序的功能,并思考怎样改变有哪些信誉好的足球投注网站策略或有哪些信誉好的足球投注网站范围,可以提高程序的效率。 main() {int m=7,n=5,i=1; do {if(i%m==0) if(i%n==0) {printf(“%d\n”,i); break;} i++;} while (i!=0); } 循环程序设计 例6.6 判断m是否素数。 算法: 素数:除了1和自身外不能被其他数整除。 判断方法:测试m能否被2到根号m整除。 为什么不是2到m-1,而是根号m? 一个数m,如果它有约数的话,约数肯定要成对出现,必然有一个大于根号m,另一个小于根号m(显然如果都大于根号m,那相乘结果会大于m)。 根号m的计算方法:利用求平方根的函数sqrt 循环变量:定义为i(整型) 循环变量的范围: 2~k ,k=sqrt(m) (k为整型) 即:i的初值为2,循环执行条件为i=k 循环变量的变化:i++ 重复执行的操作: 如果m能被i整除,则说明m不是素数,也就不需要进行后面的判断,应退出循环结构(用break语句);否则,继续判断。 结果的输出: 如果循环是中途退出的,则i=k,输出m不是素数;否则,m是一个素数。 例6.6 程序 #includestdio.h #includemath.h main( ) { int i,m,k; scanf(%d,m); k=(int)sqrt(m); for(i=2;i=k;i++) if(m%i==0) break; if(i=k) printf(%d不是一个素数\n,m); else printf(%d是一个素数\n,m); } 循环程序设计 算法2:迭代。不断用新

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档