循环直到输入1停止c语言,C语言第5章循环结构.ppt

《C语言第5章循环结构.ppt》由会员分享,可在线阅读,更多相关《C语言第5章循环结构.ppt(49页珍藏版)》请在人人文库网上搜索。

1、第五章:流通结构,1 .5.1 5.5 2小时,2。5.6 2小时。问题:对于这样的问题:问题1。从键盘上输入10个学生的分数,得到总分数。问题2。找出100以内的素数。3.找到1!2!3!10!用以前的知识解决这些问题很麻烦。解决问题1的一个愚蠢的方法是设置一个变量,一次输入一个学生的分数,然后在累加后输入下一个学生的分数,如下所示:scanf (%f ,)。重复10次,然后输出s的值,5.1 goto循环结构概述c语言可以实现循环语句:goto语句使用goto和if形成循环while语句,goto语句使用goto形成循环goto语句通用格式:goto语句标签;标签:声明;函数:无条件转移语。

2、句描述:不能用整数标记,只能出现在goto的函数中,只能添加在可执行语句的前面,以限制goto语句的使用,例如,如果和goto语句形成一个循环,并且,/* ch5 _ 1.c */# includemain () int I,sum=0;I=1;如果(i=100) sum=i,则循环:I .goto循环;printf(%d,sum);sum=0 1 sum=1 2=3 sum=3 3=6 sum=6 4 sum=4950 100=5050,5.2 while循环结构一般形式:while(表达式)循环体语句;特性:首先判断表达式,然后执行循环体。描述:循环体不能执行一次循环体。它可以是任何类型的。

3、语句。在下列情况下,while循环退出的条件表达式无效(零),循环体遇到break、return、goto无限循环: while(1);例如,使用while循环查找,/* ch5 _ 2.c */# includemain () int I,sum=0;I=1;而(I=100)sum=sum I;I .printf(%d,sum);问题1的解决方法:采用while循环结构main() int count=1,total=0,grade同时(计数=10)打印f(输入grade :);Scanf(%d),应注意:1、计数器和累加器的初始值;2.一个周期后,周期控制变量的变化。3.跳出循环时,循环控。

4、制变量的值应该是多少?如果计数的初始值是10,20呢?11,10,9,8,7,6,5,4,3,2,计数,10,9,8,7,6,5,4,3,2,1,次数,在每个循环后,同时(i=10)打印f(%d*%d=%dn,I,I * I);I .运行结果:1 * 1=1 2 * 2=4 3 * 3=9 4 * 4=16 5 * 5=25 6 * 6=36 7 * 7=49 8 * 8=64 9 * 9=81 10 * 10=100。注意循环控制的变量值必须在循环中改变。例如,在以下示例中,在循环结束时,I的值是多少?I=1;而(I=100)put char(*);I .这个循环永远不会结束,因为循环控制变。

5、量在循环中没有改变。不是循环语句。我应该更改循环体中的:do循环语句;而(表达式);执行流程:5.3 dowhile循环结构一般形式:特征:先执行循环体,然后判断表达式描述:执行循环体dowhile至少一次,并使用dowhile循环查找,/* ch5 _ 3.c */#包含main () int I,sum=0;I=1;do sum=I;I .而(I=100);printf(%d,sum);问题1 2的解决方法:采用边做边循环结构源程序 main() int count=1,total=0,grade进行打印(输入等级:);扫描(%d),应注意:1。一个周期后循环控制变量的变化。2.跳出循环时。

6、,循环控制变量的值应该是多少?如果计数的初始值是10,20呢?11,10,9,8,7,6,5,4,3,2,计数,10,9,8,7,6,5,4,3,2,1,次数,每隔一段时间,scanf(%d,main() int i,sum=0;Scanf(%d,1,跳出循环时,循环控制变量的值应该是多少?如果输入值是1,10,20呢?2.输出结果如何?1.1.while结构类似于do-while循环结构。2.但是要注意两者的区别:前者:在执行语句之前判断表达式。后者必须至少执行0次:首先执行语句,然后判断表达式。至少一次。3.也就是说,当两种循环结构被用来处理同一个问题时,如果它们的循环部分是相同的,当wh。

7、ile之后的表达式的第一个值是“真(非0)”时,由这两种循环结构获得的结果是相同的,否则,结果是不同的。While和do while循环结构比较,5.4为循环结构的一般形式:为(表达式1;表达式2;Expr3)循环语句;执行流程:for(循环变量的初始值;流通条件;更改循环变量)、表达式1、循环体、T、F,用于语句通用应用程序表单:用于(循环变量赋值初始值;流通条件;循环变量增量)循环语句;说明:for语句中的EXPR 1、EXPR 2和EXPR 3是任意的,可以省略,但分号;不可避免的无限循环:为(;)for语句可以转换成while结构,即expr1While(expr2)循环语句;表达式3。

8、;例如:# include main()int I=0;对于(I=0;i10put char(a I);运行结果:abcdefghij,示例:# include main()int I=0;对于(;i10put char(a I);例如:# include main()int I=0;对于(;i10put char(a(I);例如:# include main()int I=0;对于(;i10putchar(a i),I);逗号运算符主要用在for语句的表达式1或表达式3中。为了提高程序的可读性,建议尽量不要省略for结构中的表达式。main() int i,j,k;对于(i=0,j=100I。

9、=j;I,j-)k=I j;printf(%d %d=%dn,I,j,k);#包括main()char c;对于(;(c=getchar()!=n。)printf(%c,c);#包括main() int i,c;对于(I=0;(c=getchar()!=n。i=3) printf(%c,I c);main() int计数,总计=0,等级;for(计数=1;计数=10;count ) printf(输入grade :);Scanf (%d、11、10、9、8、7、6、5、4、3、2、计数、10、9、8、7、6、5、4、3、2、1、次、5.5辅助控制语句中断语句功能:在循环语句和开关语句中,停止并。

10、跳出循环体或开关体。描述:break只能停止并跳出最近的结构。除了loop语句和switch语句之外,break不能用于任何其他语句。示例中断示例:输出圆形区域,当该区域大于100时停止,#定义PI 3.14159 main()int r;浮动区域;对于(r=1;r100)断开;printf(r=%d,面积=%.2fn,r,面积);示例分隔符示例:小写字母被转换为大写字母,直到输入非字母字符,包括# main()int I,j;char c;而(1)c=getchar();如果(c=a、#include #include main() int m,I,k;Scanf(%d,continue语句。

11、函数:结束这个循环,跳过循环体中未执行的语句,判断下一次是否执行循环体。它仅在循环语句中使用,例如,计算输入的十个整数中的正数和平均值,#包括main() int i,num=0,a;浮点总和=0;对于(I=0;i10I) scanf(%d),5.6第4-5章示例分析,示例显示输入字符,如果按下Esc键,则退出循环;如果您按回车键,您将继续输入下一个字符,无需任何处理。#包括“conio.h”主()char ch对于(;)ch=getch();/*无显示字符输入功能的ACSII代码*/if (ch=27) /* Esc键为27 */break;/*退出循环*/if (ch=13)继续;/*按E。

12、nter:跳过字符输出语句*/PUTCH(CH);/*显示输入字符*/getch();/*停止程序并按任意键继续,但不要*/,main() int a,b,c,d,t;printf(输入a、b、c、d :n);扫描(%d,%d,%d,%d,示例第66页输入4个数字,要求按大小顺序输出。3、6、9、5、6、3、9、6、5、A、B、C、D、B. 2。从剩余的三个数字中排出第二大数字;3.从其余两个数字中排出第三个最大的数字;编程输入几个学生的分数(以负数结尾),计算并输出最高分和最低分。分析:这个问题使用循环控制输入几个学生的分数,然后将分数与循环中的条件判断句进行比较。,源程序 main() i。

13、nt grade,max,minprintf(输入等级:);Scanf(%d),类任务:1。用dowhile重写,源程序/用dowhile重写,并中断main () int grade,max=-1,min=1000/为什么取这样的初始值?进行打印(输入下一级:);scanf(%d),main()int n;长t=1,总和=0;/注意乘法器和累加器的初始值为(n=1;n100n)t=t * n;如果(n%2=0)继续;总和=总和t。printf(sum=%ldn,sum);每个周期后,重要变量的变化,示例计算1!3!5!99!分析:问题本质上是一个累加和求和的问题,循环的次数可以通过for语句。

14、来实现;应该有选择地进行累加,即只对奇数项求和,if语句和continue语句的组合可以用于有选择的累加。源程序main()int n=1;如果(n=6)继续,则为(n=10 );printf(M,n);n;当:跳出循环时,循环控制变量的值是多少?跑步成绩怎么样?这个程序有什么问题?如果是,如何纠正?无限循环;运行结果:1 2 3 4 5,5,5,5,5,4,3,2,1,n,9,8,7,6,5,4,3,2,1,次数,为(I=10I=150I)如果(I % 3=0 | | I % 7=0)s=s I * I;printf(n%ld ,s);10到150之间可被3或7整除的数的平方和。分析:将变量。

15、s相加,s的初始值为0。使用变量1从10到150循环。如果我能被3或7整除(I%3=0|I%7=0),那么s=si * I,00 01 02 03 04 05 10 11 12 13 14 15 20 21 22 23 24 25 30 31 33 34 35 40 41 42。i6;I)对于(j=0;j6;j ) printf(=%d ,I,j);put char(n);算法:将I除以2,3,4,i=3。(参考数论知识)如果我能被某个数整除,我就是一个复合数。I .测试下一个我;从3到1000寻找所有质数的程序。#include main() int i,j,count=0,标志;/*标记有标志*/表示(I=3;i=1000I)标志=0;/*将标志设置为0 */表示(j=2;j=sqrt(I);j)如果(i% j=0) /*测试j可以是整数I */flag=1;如果你能破开/*,它不是质数,它被标记为1 */*我已经测试完了*/如果(标志=0) /*我是质数,那么输出*/printf (。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值