版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课前练习课前练习u1、写出循环语句的关键字、写出循环语句的关键字.u2、写出下面的程序履行后在屏幕表现的内容、写出下面的程序履行后在屏幕表现的内容u#includeumain()uu int i=1; u while(i=5)u printf(“i=%dn,i);u i+;u 在人们所需操作的运算任务中,常常需要用到循环结构,所谓循环是指对同一个程序段重复履行如果干次.被重复履行的部分(由如果干语句组成)称为循环体.循环结构又称重复结构.本章关键内容: while 循环语句 dowhile 循环语句 for 循环语句 循环嵌套及注重的咨询题 程序的流程图5.1 while 循环结构循环结构u依
2、照已有的学问依照已有的学问,求求1100的累加和能够用的累加和能够用“1+2+100”来求解来求解,但明显非常繁琐但明显非常繁琐,同时且当累加同时且当累加的项较多时这种方式也不有效的项较多时这种方式也不有效.u第一步设置一个计数器第一步设置一个计数器,计数器计数器=1,2,3,100,累加器累加器sum,其初值为其初值为0,操纵操纵sum+= i来统计(来统计(i依次取依次取1、2、100),如此只要解决以下如此只要解决以下3个咨询题即可个咨询题即可:u 将将i的初值置为的初值置为1;u 每履行一次每履行一次“sum+= i”后后,i增增1;u 当当i增到增到101时时,中断统计中断统计.此刻
3、此刻,sum的值便是的值便是1100的累加和的累加和.流程图流程图sum=0i=1 i100真真sum+=ii=i+1假假5.2 while语句用来实现语句用来实现“当型当型”循环结构循环结构.uwhile语句一样标准语句一样标准:u while(表达式表达式)u 循环体语句循环体语句;u例似例似:while(i=100)u sum += i;u i+;u u功能功能:第一步统计表达式的值第一步统计表达式的值,如果为如果为“真真”,那么履行循环那么履行循环体语句体语句,履行完毕后履行完毕后,再统计表达式的值再统计表达式的值,如果为如果为“真真”,那那么重复履行循环体语句么重复履行循环体语句,直
4、到表达式的值为直到表达式的值为“假假”为止为止,结结束束while语句的履行语句的履行,履行履行while语句的后续语句语句的后续语句.前提表达式循环体语句真假程序程序5.1 5.2 5.3uP169 170课间练习课间练习uP173编程练习编程练习 1,4课后作业课后作业:uP173编程练习编程练习 1,42u #includeu #define x 5u int main()u u int y;u printf(输入一个整数输入一个整数:);u scanf(%d,&y);u if(x=y) printf(你猜对了你猜对了);u if(xy) printf(你输入的数小了你输入的数小
5、了);u return 0;u u #includeu #define x 10u int main ()u u float y;u printf(请输入一个数请输入一个数);u scanf(%f,&y) ;u u if (y=x)u printf(你猜对了你猜对了);u else if(yx)u printf(你输入的数大了你输入的数大了);u elseu printf(你输入的数小了你输入的数小了);u return 0;u u程序员程序员:钟坯平钟坯平u日期日期:4082021u*u#include u#define num 5uint main()uu int guess;u
6、printf(请输入数(该数小与等于请输入数(该数小与等于10):);u scanf(%d,&guess); *猎取信息猎取信息*u if (guessnum) *引用引用if-else语句语句,依照差别前提输出差别提示语依照差别前提输出差别提示语*u u printf(对不起!您输入的数偏大对不起!您输入的数偏大.n);u u else if (guessnum)u u printf(对不起!您输入的数偏小对不起!您输入的数偏小.n);u u elseu u printf(恭喜您恭喜您,您猜对了!您猜对了!n);u u return 0;uu#includeuint main()uu
7、 float a;u printf(请输入学生的成绩请输入学生的成绩: n,a);u scanf(%f,&a);u if(a=90)u u printf(评定等级为评定等级为A.n);u u else if(a=80)u u printf(评定等级为评定等级为B.n);u uelse if(a=70)u u printf(评定等级为评定等级为C.n);u u else if(a=60)u u printf(评定等级为评定等级为D.n);u u else if(a60)u u printf(评定等级为评定等级为F.n);u u return 0;uu王乙婷王乙婷 多种方式多种方式5.3
8、用用while 求平均值和总和求平均值和总和uP174u程序程序5.6输出一条动静输出一条动静count=4 输入一个数num;累加那个数total=total+num真真假假最先Count加1设置count=1统计平均值用用while语句求语句求1100的累加和的累加和.main() int i=1,sum=0; *初始化循环操纵变量初始化循环操纵变量i和累加和累加器器sum* while(i=100) sum+= i; *实现累加实现累加* i+; *循环操纵变量循环操纵变量i增增1* printf(sum=%dn,sum);注重输入提示注重输入提示例例 用用while 循环来查寻成绩高于
9、循环来查寻成绩高于95分的学生人数分的学生人数u exam41a.cu #includeu main() u int fs,i=1;u printf(n请输入第请输入第 %d 个信息个信息: ,i);u scanf(%d,&fs);u while(fs=95 & i95)u printf( n寻到啦寻到啦!n );u elseu printf( n没寻到没寻到!n);u 猜数嬉戏猜数嬉戏u #includeu #includeu #define NUM 5u int main(void)u uint i=0,guess,rand1;urand1=rand()%10;uwhile
10、(irand1) printf(猜大了猜大了n);u else printf(猜小了猜小了n);ui+;u u 课后作业课后作业u1、扩充菜单程序、扩充菜单程序u2、编程练习、编程练习p184 练习练习101标记标记uP179程序程序5.8 一个负数做为信息输入结束标记一个负数做为信息输入结束标记u#includeuint main()uu #define CUTOFF -1u float grade=0.0l;u float total=0.0l;u printf(似果信息完了似果信息完了,请输入一个负数做为结束标记请输入一个负数做为结束标记n);u while(gradeCUTOFF )u
11、 u printf(请输入一个信息请输入一个信息: );u scanf(%f,&grade);u if(grade=CUTOFF) break;u printf(%lf,grade);u total+=grade;u u printf( 总分是总分是=%lfn ,total);u u return 0;u程序程序5.9 用用EOF来做为信息输入结束标记来做为信息输入结束标记u#includeuint main()uu #define CUTOFF -1u float grade=0.0l;u float total=0.0l;u printf(似果信息完了似果信息完了,请输入一个负数做
12、为结束标记请输入一个负数做为结束标记n);u while(scanf(%f,&grade)!=EOF )u u total+=grade;u printf(请输入一个信息请输入一个信息: );u printf(%lf,grade);u u printf( 总分是总分是=%lfn ,total);u return 0;u转向语句转向语句u为了使程序操纵更加灵活为了使程序操纵更加灵活,语言提供了语言提供了break语句、语句、continue语句、语句、goto语句和语句和return语句语句.u一、一、break语句语句u一样标准一样标准:break;u功能功能:break语句只能表此刻
13、语句只能表此刻switch语句和三种循环语句语句和三种循环语句的循环体语句中的循环体语句中,终止它所在的终止它所在的switch语句或循环语句的语句或循环语句的履行履行,接着转向履行下一条语句接着转向履行下一条语句.u#includeuint main()uu #define CUTOFF -1u float grade=0.0l;u float total=0.0l;u printf(似果信息完了似果信息完了,请输入一个负数做为结束标记请输入一个负数做为结束标记n);u while(gradeCUTOFF )u u printf(请输入一个信息请输入一个信息: );u scanf(%f,&a
14、mp;grade);u if(grade=CUTOFF) break;u printf(%lf,grade);u total+=grade;u u printf( 总分是总分是=%lfn ,total);u u return 0;uContinue语句语句u 一样标准一样标准:continue;u 功能功能:continue只能表此刻三种循环语句的循环体语句中只能表此刻三种循环语句的循环体语句中.对对while循循环环,跃过循环体语句其余未履行语句跃过循环体语句其余未履行语句,但转向循环前提的推断但转向循环前提的推断.u while(count30 )u u printf(请输入一个信息请输入
15、一个信息: );u scanf(%f,&grade);u if(grade100) u continue;u total+=grade;u Count+;u 5.7 do while 循环结构循环结构(“直到型直到型”循环循环)udo - while语句一样标准语句一样标准:u do u 循环体语句循环体语句u while(表达式表达式); *本行的分号不能缺省本行的分号不能缺省*u功能功能:第一步履行循环体语句第一步履行循环体语句,接着探测循环操纵表达式的值接着探测循环操纵表达式的值,如如果为果为“真真”,那么重复履行循环体语句那么重复履行循环体语句,否那么退出循环否那么退出循环,履
16、行履行do - while的后续语句的后续语句.u例似例似:dou u sum+= i;u i+;u while(i=100);循环体语句表达式假真例例 : 用用do - while语句求解语句求解1100的累加和的累加和main() int i=1, sum=0; *定义同时初始化循环操纵变量定义同时初始化循环操纵变量,以及累加器以及累加器* do sum+=i; *累加累加* i+; while(i=100); *循环接着前提循环接着前提:i=100* printf(sum=%dn,sum); while和和do - while循环的对比循环的对比 main() int i,sum=0;
17、scanf(“%d”,&i); while(i=10) sum+= i; i+; printf(sum=%dn,sum);main() int i, sum=0; scanf(“%d”,&i); do sum+=i; i+; while(i=10); printf(sum=%dn,sum); 查寻某班级考试结论是否有高于95分的成绩.例例 将例将例4.1用新的用新的dowhile 语句重写语句重写exam45.c#includemain() int fs,i=1; do printf(请输入第请输入第 %d 个信息个信息: ,i); scanf(%d,&fs); i+;
18、 while(fs=95 & i95) printf( n寻到啦寻到啦!n ); else printf( n没寻到没寻到!n);5.4 for语句语句u for语句的一样标准语句的一样标准:u for(表达式(表达式1;表达式;表达式2;表达式;表达式3)u 循环体语句;循环体语句;u for语句最简单懂得的形式语句最简单懂得的形式:u for(循环变量赋初值;循环前提;循环变量改变表达式)(循环变量赋初值;循环前提;循环变量改变表达式)u 循环体语句;循环体语句;u 例似例似:for(i=1; i=100; i+)u sum+=i;u 其中其中:u 表达式表达式1往往是为循环变量赋
19、初值的表达式;表达式往往是为循环变量赋初值的表达式;表达式2是操纵循环是操纵循环的表达式;表达式的表达式;表达式3往往是改变循环变量值的表达式往往是改变循环变量值的表达式.u 循环体语句能够是单条语句和复合语句循环体语句能够是单条语句和复合语句.for语句的一样标准语句的一样标准:u for(初始化语句;前提表达式;改变表达式)(初始化语句;前提表达式;改变表达式)u 循环体语句;循环体语句;u 功能功能:第一步履行初始化语句第一步履行初始化语句,接着探测前提表达式的值接着探测前提表达式的值,如果前提表达如果前提表达式的值为式的值为“真真”,那么履行循环体语句那么履行循环体语句,履行完毕后履行
20、完毕后,再履行改变表达式再履行改变表达式,接着再探测前提表达式的值是否为接着再探测前提表达式的值是否为“真真”,如果为如果为“真真”,接着履行循接着履行循环体语句环体语句,如果为如果为“假假”,那么终止循环那么终止循环,履行履行for语句的后续语句语句的后续语句.初始化语句初始化语句前提表达式前提表达式循环体语句循环体语句改变表达式改变表达式真真假假程序程序5.10u #includeu int main()u u #define MAXCOUNT 20u int count ;u u for(count=2;count=MAXCOUNT;count+=2)uu printf(%d,count
21、);u return 0;u u三种变异的三种变异的for语句语句u1、无初始表达式、无初始表达式u2、只有前提表达式、只有前提表达式u3、无循环体语句、无循环体语句u编程风格编程风格u1、用、用for 仍是仍是while u2、使用大括号、使用大括号 P189 程序程序5.11uu使用使用for循环统计总数和平均值循环统计总数和平均值程序程序5.12#include#define MAXCOUNT 5Int main() int count; float num,total=0,average; *将累加器将累加器sum初始化为初始化为0* for(count=1; count= MAXCO
22、UNT; count+) printf(“n请输入一个信息请输入一个信息: ”); scanf(“%f”,&num); total +=num; *实现累加实现累加* average=total MAXCOUNT; printf(“nn 这这%d个信息的平均数是个信息的平均数是%f ,总和是总和是%fn“,average,total; return 0;课间练习课间练习u编程练习编程练习:u1,2课后作业课后作业u编程练习编程练习P184 第第10题题u编程练习编程练习P191 第第7题题2统计某班级中统计机课程中考试成绩高于80分的人数,现用for 循环语句重写该程序. includ
23、emain() int fs,sum,j; sum=0; for (j=1; j80) sum=sum+1; printf(sum=%dn,sum); for语句形式的多样性u1、为空为空u求求1100的和的和.u#include ”stdio.h”umain()u int i=1, n=100;u long sum=0;u for( ;i=n;i+)u sum+=i;u printf(”%ld”,sum);u将初始值的赋值移到循环语句的外头积for语句形式的多样性2、和和是逗号表达式是逗号表达式#include ”stdio.h”main() int i, n=100; long sum;
24、for(i=1,sum=0;i=n;sum+=i,i+) ; printf(”%ld”,sum);全部运算都移到循环语句内for语句形式的多样性4、用空循环来耽误时候、用空循环来耽误时候常用空循环来产生延时常用空循环来产生延时,以达到某种特定要求以达到某种特定要求.似似:for(t=0;ttime;t+) ;5、无限循环、无限循环for循环的三个表达式中循环的三个表达式中,任何一个都能够省略任何一个都能够省略,但是分号但是分号“;”不可省略不可省略.所以下面的写法所以下面的写法:for( ; ;) For(i=5,printf(“进入循环进入循环!”); i;i-;);5.5 案例对比案例对比
25、u技术技术1、在循环体内参加的挑选语句、在循环体内参加的挑选语句uP192 程序程序5.13u技术技术2、输入信息验证、输入信息验证uP193 程序程序5.14 给定一个信息范畴给定一个信息范畴uP194 程序程序5.15 永真永真,当信息是给定的信息时当信息是给定的信息时,中断循中断循环环u技术技术3、交互式循环操纵、交互式循环操纵uP195 程序程序5.16 循环操纵前提使用变量而不是常量循环操纵前提使用变量而不是常量u技术技术4、统计方程式、统计方程式,给定一个给定一个x的值求出方程式的值求出方程式y.uP196 程序程序5.17 x取值改变为取值改变为1uP197 程序程序5.18 x
26、取值为改变取值为改变0.55.6 循环语句嵌套循环语句嵌套u循环语句的循环体能够是任何合法的循环语句的循环体能够是任何合法的C语句语句.如果循环语句如果循环语句的循环体语句内又见谅另一个完整的循环语句的循环体语句内又见谅另一个完整的循环语句,称为循环称为循环语句的嵌套语句的嵌套.内嵌的循环中还能够嵌套循环便形成多重循内嵌的循环中还能够嵌套循环便形成多重循环环.三种循环(三种循环(for循环、循环、while循环和循环和do - while循环)循环)能够彼此嵌套能够彼此嵌套.例例 4.10 4.10 分不统计某班学生各科成绩中高于分的人数分不统计某班学生各科成绩中高于分的人数. . 学生人数为
27、学生人数为3030人人, ,课程为课程为: :数学、语文、英语、数学、语文、英语、物理、生物物理、生物. .int n,i;n=0;for(i=1;i=80) n=n+1; 累加大于80 分的人数 printf(n=%d“,n); 先看统计数学成绩 统计五门课程,只需将统计一门课程的程序用差别的信息履行 5 次,这可用一个循环实现. 统计某一门课程 n=0; for(i=0;i=80) n=n+1; printf(n=%d“,n);for(j=0;j5;j+) 对课程循环 统计一门课程 n=0; for(i=0;i=80) n=n+1; printf(n=%d“,n); 例例: 打印九九表打印
28、九九表,呈下三角形呈下三角形,似图所示似图所示1*1=11*2=2 2*2=41*3=3 2*3=6 3*3=91*9=9 2*9=18 3*9=279*9=81用二重循环编程用二重循环编程. 外循环外循环,操纵打操纵打9行行. 内循环内循环,操纵打算式操纵打算式,每行算式的个数正好等于行数每行算式的个数正好等于行数,第一第一行行1个个,第二行第二行2个个,第三行第三行3个个,第第i行行i个个,. 每行打印完后输出回车换行每行打印完后输出回车换行.#include stdio.hmain() int i,j; for(i=1; i=9; i+) for(j=1;j=i;j+) printf(%
29、d*%d=%d ,j, i, i*j); *内循环内循环i次次* printf(n); 4.5 转向语句转向语句u为了使程序操纵更加灵活为了使程序操纵更加灵活,语言提供了语言提供了break语句、语句、continue语句、语句、goto语句和语句和return语句语句.u一、一、break语句语句u一样标准一样标准:break;u功能功能:break语句只能表此刻语句只能表此刻switch语句和三种循环语句语句和三种循环语句的循环体语句中的循环体语句中,终止它所在的终止它所在的switch语句或循环语句的语句或循环语句的履行履行,接着转向履行下一条语句接着转向履行下一条语句.例例4.24 输
30、出输出3100之间的全部素数之间的全部素数.所谓素数所谓素数n是指是指,除除1和和n之之外外,不能被不能被2(n-1)的任何整数整除)的任何整数整除.main() int i=3, j, counter=0; *counter的作用是累计输出素数的作用是累计输出素数的个数的个数* for ( ; i=100; i+) *外循环外循环:为内循环提供一个整数为内循环提供一个整数i* for (j=2; j= i ) *整数整数i是素数是素数:输出输出,计数器加计数器加1* printf(%6d,i); counter+; 二、二、continue语句语句u一样标准一样标准:continue;u功能
31、功能:continue只能表此刻三种循环语句的循环体语句中只能表此刻三种循环语句的循环体语句中.对对for循环循环,跃过循环体语句其余未履行语句跃过循环体语句其余未履行语句,转向循环变量转向循环变量增量表达式增量表达式3的统计;对的统计;对while和和do-while循环循环,跃过循环跃过循环体语句其余未履行语句体语句其余未履行语句,但转向循环前提的推断但转向循环前提的推断.u例例4.25 把把100200之间的不能被之间的不能被3整除的数输出整除的数输出main() int n; for(n=100;n=200;n+) if(n%3=0) continue; printf(%d ,n);
32、例似:输入10.8+0.13*100 统计结论为: 1093.000000假定统计时不思考运算符的优先级,也不许可有( ),而是依照运算符表现的先后次序履行运算.4.6 循环语句举例循环语句举例对3+5如此的表达式,统计时要先读入数值3,接着读入运算符“+”,再读入数值5,末了依照运算符履行运算.对4种差别的算术运算符,要分不履行4种差别的运算,所以,可用多分支结构swtich 来完成4种差别的运算.对读取表达式中的各个值,可操纵C语言中scanf 函数的特点:当读取数值时,似果读到一个非数值字符,那么中断读入,将读入的信息按指定的标准变形.接着用getchar函数读取运算符,末了再用scan
33、f函数读取第2个信息.1、 算法对比算法对比 exam412a.c#includemain(void) double x,y; char op; printf(input arithmetic expression:n); scanf(%lf,&x); op=getchar(); scanf(%lf,&y); switch(op) case +:x+=y; break; case -:x-=y; break; case *:x*=y; break; case : if(y) x=y; 似果y不等于零 else printf(division is zero,input y ag
34、ainn); exit(1); break; default: printf(illegal operatorn); printf(result= %8.4fn,x);识不一个运算符的程序识不一个运算符的程序事实上,当统计了“3+5”同时将其值保留在变量x中,接下便要读运算符“*”,接着再读入操纵数8,同样,可用switch结构统计x*8.似果表达式中有更多的运算符,程序的运行环节一样.所以,可用一个循环来操作.如何组织循环?事实上,认真察看表达式“3+5*8”,当统计完成“3+5”,接下要读入“*”和8,所以,在循环中读入运算符和它背面的一个操纵数,第1个操纵数在循环外头读入,整个循环结构也便构成了.当读完表达式末了一个数值,接下读运算符时碰着换行符,那么讲明表达式已读完,循环结束.多个运算符的表达式多个运算符的表达式 exam412.c#includemain(void) double x,y; char op; printf(input arithmetic expression:n); sc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年内蒙古化工职业学院单招职业技能测试题库及答案详解(考点梳理)
- 通信网络管理员安全操作测试考核试卷含答案
- 烧结成品工创新思维水平考核试卷含答案
- 餐厨垃圾收集工QC管理竞赛考核试卷含答案
- 羽绒羽毛充填处理工安全知识强化考核试卷含答案
- 油墨颜料制作工安全管理竞赛考核试卷含答案
- 蓄电池充电工班组协作测试考核试卷含答案
- 机动车鉴定评估师安全知识竞赛水平考核试卷含答案
- 吊篮安全管理操作指南
- 浸渍纸层压板工保密意识考核试卷含答案
- 中职语文教学心得体会模版
- 《教育统计与测量评价新编教程》课件-教育统计与测量评价新编教程-第01章
- 2025年全国硕士研究生入学统一考试英语(一)真题及答案
- 微型行星齿轮传动设计
- 展览馆照明设计与施工方案
- 六年级数学上册口算题300道
- 人教版初中九年级全册英语单词表(完整版)
- 烟酰胺在抗衰老研究中的突破
- 计算机应用基础(Windows 10+Office 2019)(第4版)课件 张爱民 单元1、2 认识与使用计算机、Windows 10的使用
- 医疗设备采购人员的谈判技巧培训
- 售卖机服务 投标方案(技术方案)
评论
0/150
提交评论