C语言程序设计第六章课件.pptx
《C语言程序设计第六章课件.pptx》由会员分享,可在线阅读,更多相关《C语言程序设计第六章课件.pptx(62页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、本章学习内容 计数控制的循环 条件控制的循环 for语句,while语句,do-while语句 continue语句,break语句 嵌套循环 结构化程序设计的基本思想 程序调试与排错第1页/共62页Example:如何确定程序的输入和输出呢?Draw a flowchart for the following problem:读入5个整数,计算并显示它们的和.Input:5 个整数n1,n2,n3,n4,n5 Output:n1,n2,n3,n4,n5的和Input example:2 3 4 5 6Output example:20问题的提出问题的提出问题的提出问题的提出第2页/共62页I
2、nput n1Input n2Input n3input n4input n5output sumsum n1+n2+n3+n4+n52 2n1Assume input example:2 3 4 5 63 3n24 4n35 5n46 6n52020sumend使用了6个不同的变量start问题的提出问题的提出问题的提出问题的提出第3页/共62页6.1循环控制结构与循环语句标记控制标记控制Sentinel Sentinel ControlledControlled计数控制计数控制Counter ControlledCounter Controlled1,2,3,4,4,3,2,1条件控制条件
3、控制Condition Condition ControlledControlled如何对循环进行控制呢如何对循环进行控制呢?第4页/共62页counter 1,sum 0counter6sum sum+nfalsetruecounter+output suminput n1countersum01 6true2n0+2222 6true32+3533 6true45+4944 6true59+51455 6true614+62066 6falsecounter-controlled 计数器每次增1使用了3个变量Assume input example:2 3 4 5 66.26.2计数控制的
4、循环计数控制的循环计数控制的循环计数控制的循环startend第5页/共62页6.2计数控制的循环counter initial valuecounter initial valuetest countertest counterstep nstep xfalsetrueupdate counterupdate counter循环体循环体(Body of Body of LoopLoop)第6页/共62页当型循环当型循环Condition is tested first 计数控制计数控制Loop is controlled by a counterSyntaxforfor(initial va
5、lue;condition;update counter)statement;Orforfor(initial value;condition;update counter)statement;statement;for循环语句循环语句循环起始条件循环起始条件循环起始条件循环起始条件循环结束条件循环结束条件循环结束条件循环结束条件循环变量增值循环变量增值循环变量增值循环变量增值复合语句compound statement被当做一条语句看待循环变量控制循环次数,不要在循环体内改变这个变量的值第7页/共62页i 0,sum 0i 5sumsum+nfalsetruei+output suminpu
6、t nint i,sum,n;sum=0;for(i=0;i 5;i+)scanf(“%d”,&n);sum=sum+n;printf(“%d”,sum);for循环语句循环语句startend第8页/共62页A A条条 件件P P P P直直直直到到到到型型型型循循循循环环环环假真条件控制的循环条件控制的循环A A当当当当型型型型循循循循环环环环真假假条条 件件P P P P第9页/共62页 当型循环当型循环Condition is tested first 条件或计数控制条件或计数控制 Loop is controlled by condition or a counter 语法while
7、while(condition)(condition)statement;statement;Orwhilewhile(condition)(condition)statement;statement;statement;statement;No No semicolon!while循环语句循环语句第10页/共62页直到型循环Statements in the loop are executed first(at least once),and condition is tested last条件或计数控制 Loop is controlled by condition or a counte
8、r 语法do statement;statement;while(condition);statement;Dont forget the Dont forget the semicolon!do-while循环语句循环语句第11页/共62页【例6.1】计算并输出1+2+3+n的值 循环次数已知,计数控制的循环循环次数已知,计数控制的循环循环次数已知,计数控制的循环循环次数已知,计数控制的循环第12页/共62页 循环次数已知,计数控制的循环循环次数已知,计数控制的循环循环次数已知,计数控制的循环循环次数已知,计数控制的循环【例6.1】计算并输出1+2+3+n的值sum=0的作用?的作用?第13
9、页/共62页 循环次数已知,计数控制的循环循环次数已知,计数控制的循环循环次数已知,计数控制的循环循环次数已知,计数控制的循环【例6.1】计算并输出1+2+3+n的值第14页/共62页循环条件第一次就为假(如输入1)时会怎样?【例6.1】计算并输出1+2+3+n的值第15页/共62页A A当当型型循循环环真假假条条 件件P P P P假条条 件件P P P P Testing Condition First【例6.1】计算并输出1+2+3+n的值第16页/共62页条条 件件P P P P直直到到型型循循环环A A假真条条 件件P P P PA A假Testing condition last【
10、例6.1】计算并输出1+2+3+n的值第17页/共62页注意在for和while语句之后一般没有分号有分号表示循环体就是分号之前的内容空语句表示循环体内什么都不做 while(i 100);i+;死循环 for(i=0;i 100;i+);printf(%d,i);用于延时注意!注意!第18页/共62页 如何减少循环的次数?如何减少循环的次数?如何减少循环的次数?如何减少循环的次数?【例6.1】计算并输出1+2+3+n的值第19页/共62页【例6.1】计算并输出1+2+3+n的值第20页/共62页逗号运算符(Comma Operator)多数情况下,并不使用整个逗号表达式的值,更常见的情况是要
11、分别得到各表达式的值主要用在循环语句中,同时对多个变量赋初值等 for(i=1,j=100;i j;i+,j-)表达式表达式1,1,表达式表达式2,2,表达式表达式n n循环起始条件循环起始条件循环变量增值循环变量增值循环结束条件循环结束条件第21页/共62页【例例6.2】计算并输出计算并输出n!=1 2 3 n 第22页/共62页【例例6.3】计算并输出计算并输出1!,2!,3!,n!第23页/共62页【例6.4】输入n值,计算并输出 1!+2!+3!+n!利用前项计算后项第24页/共62页【例6.4】输入n值,计算并输出 1!+2!+3!+n!每次单独计算累加项第25页/共62页使用嵌套循
12、环的注意事项使用复合语句,以保证逻辑上的正确性即用一对花括号将各层循环体语句括起来内层和外层循环控制变量不能同名,以免造成混乱 采用右缩进格式书写,以保证层次的清晰性 注意!注意!6.3嵌套循环第26页/共62页选择三种循环的一般原则如果循环次数已知,计数控制的循环用for如果循环次数未知,条件控制的循环用while如果循环体至少要执行一次用do-while这只是“一般”原则,不是“必要”原则第27页/共62页6.4 条件控制的循环例6.6:猜数游戏想一个想一个1100之间之间的数的数猜对猜对:right!猜错猜错:wrong!并提示并提示大小大小第28页/共62页只猜只猜1 1次次直到猜对为
13、止直到猜对为止最多猜最多猜1010次次猜多个数猜多个数1010次猜不对就猜下一个数次猜不对就猜下一个数循序渐进式编程:猜数游戏例6.6,例6.7,例6.8,例6.9,例6.10第29页/共62页猜数游戏用到的库函数怎样模拟计算机“想”一个数呢?随机函数rand()产生0,RAND_MAX 之间的随机数magic=rand();#include RAND_MAX在stdlib.h中定义,不大于双字节整数的最大值32767 产生0,b-1 之间的随机数magic=rand()%b;产生a,a+b-1 之间的随机数magic=rand()%b+a;第30页/共62页#include#include
14、main()int magic;/*计算机想的数*/int guess;/*人猜的数*/magic=rand()%100+1;/*“想”一个1,100之间的数magic*/printf(Please guess a magic number:);scanf(%d,&guess);if(guess magic)printf(Wrong!Too high!n);else if(guess magic)printf(Wrong!Too low!n);else printf(Right!n);printf(The number is:%d n,magic);例6.6只猜只猜1 1次次第31页/共62页
15、#include#include main()int magic;int guess;int counter;/*记录人猜次数的计数器变量*/magic=rand()%100+1;counter=0;/*计数器变量count初始化为0*/doprintf(Please guess a magic number:);scanf(%d,&guess);counter+;/*计数器变量count加1*/if(guess magic)printf(Wrong!Too high!n);else if(guess magic)printf(Wrong!Too low!n);else printf(Righ
16、t!n);while(guess!=magic);printf(counter=%d n,counter);直到猜对为止直到猜对为止例6.7第32页/共62页猜数游戏用到的库函数每次运行程序时计算机所“想”的数都是一样的,这是什么原因呢?函数rand()产生的只是伪随机数随机函数srand为函数rand()设置随机数种子来实现对函数rand所产生的伪随机数的“随机化”通过输入随机数种子,产生0,100之间的随机数scanf(%u,&seed);srand(seed);magic=rand()%100+1;第33页/共62页#include#include main()int magic;int
17、 guess;int counter;/*记录人猜次数的计数器变量*/unsigned int seed;printf(Please enter seed:);scanf(%u,&seed);srand(seed);magic=rand()%100+1;counter=0;/*计数器变量count初始化为0*/doprintf(Please guess a magic number:);scanf(%d,&guess);counter+;/*计数器变量count加1*/if(guess magic)printf(Wrong!Too high!n);else if(guess magic)pri
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 第六 课件
限制150内