C语言4分支结构课件

上传人:tia****g98 文档编号:244951805 上传时间:2024-10-06 格式:PPT 页数:32 大小:340.50KB
返回 下载 相关 举报
C语言4分支结构课件_第1页
第1页 / 共32页
C语言4分支结构课件_第2页
第2页 / 共32页
C语言4分支结构课件_第3页
第3页 / 共32页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,(C语言程序设计),第 4 章 选择型程序设计,第 4 章 选择型程序设计,1,4.1,程序的灵魂算法,算法(algorithm):,计算机求解某一问题而采用的具体方法、步骤。,两大类计算机算法:数值运算算法、非数值运算算法,(求数值解、成熟)(事务管理、广泛),算法特征:,1有穷性 2确定性 3输入 4输出 5有效性,著名计算机科学家沃思,(Nikiklaus Wirth),公式,:,数据结构,算法,程序,描述数据的类型、组织结构,描述对数据的,操作步骤,算法的概念,2,(,1)带序号的自然语言描述 (易懂但不直观,不严格),(2),流程图:灵活、自由、形象、直观,可表示任何算法,输入/输出,处理,判断,开始/结束,连接符,数据流,(,3)N-S图(盒图):完全去掉了带箭头的流程线,算法的所有处理步骤,都写在一个大矩形框里(描述简单,符合结构化的思想),(,4)伪代码:用介于自然语言和计算机语言之间的文字及符号来描述算法,(方便、易懂、便于向计算机语言过渡),A,A,P,A,P,P,T,F,A,B,算法的表示,B,3,例41 求12345,分析:122;236;6424;245120,设置p为被乘数,存放结果;i为乘数,存放每个数据;,S1:使p=1;,S2:使i=1;,S3:p,ip;,S4:i+1=i,S5:若i=5,执行S3;,否则算法结束。,语言描述:,首先设置两个变量并对其初始化,其中p为,结果变量,赋初值为1;i为数据变量,赋初值为1;,计算p,i,将结果放入p中,p代表前i项连乘积;,然后使i在原来基础上加1;对i进行判断,如果ii;,S2:若gi=80,则打印ni和gi,否则不打印;,S3:i+1=i;,S4:若ip,1=n,P+n=p,n+1=n,ni;,S2:输入ni,gi;,S2:若gi=80,则打印ni和gi,否则不打印;,S3:i+1=i;,S4:若ii,输入n,i,g,i,g,i,80,打印,n,i,g,i,i+1=i,i50,结束,Y,N,N,Y,算法的流程图描述,8,N-S图(盒图):完全去掉了带箭头的流程线,算法的所有,处理步骤,都写在一个大矩形框里,A,A,P,A,P,P,T,F,A,B,x0,y=2,y=1,成立,不成立,p+n=p,N=N+1,当ni,直到i50时,算法的,N-S,图描述,B,9,伪代码:用介于自然语言和计算机语言之间的文字及符号来描述算法,(方便、易懂、便于向计算机语言过渡),基本结构:,begin,初始化;,执行语句1;,执行语句n;,end,可以写文字,也可以写简易代码,算法的伪代码描述,10,4.2,C语言的语句,C,语句,指令语句,非指令语句,流程控制语句,表达式语句,数据定义语句,(,int a;,),编译预处理,宏定义,(,#define,),文件包含,(,#include,),条件编译,(,#ifdef#else#endif,),赋值语句,(,i=1;,),函数调用语句,(,putchar(c);,),逗号语句,(,+a,+b;,),空语句,(,;,),判断语句,(,if,switch,),循环语句,(,for,while,dowhile,),转移控制语句,(,break;continue,return;goto,),复合语句,(由一对花括号括起来的一组语句,如:,int a;a=1;printf(“%d”,a);,),11,形式二,:,格式,:,if(,expression,),语句组,1;,else,语句组,2;,执行过程:,if,语句的三种形式,形式一:,格式:,if(,expression,),语句组,1;,执行过程:,expr,statement,非,0,=0,例:if(xy),printf(“%d”,x);,expr,statement1,statement2,非0,=0,例:,if(xy),max=x;,else,max=y;,(1)if语句中的“表达式”必须用“,(,”和“,),”括起来。,(2)else子句是if语句的一部分,必须与if配对使用,不能单独使用。,(3)当if和else下面的语句组,仅由一条语句构成时,也可不使用复合语句形式(即去掉花括号)。,例:,if(xy),printf(“最大值为:”);,printf(“%dn”,x);,else,printf(“最大值为:”);,printf(“%dn”,y);,4.3,if 语句,12,#include,main(),int x,y;,printf(Enter an integer:);,scanf(%d,y=x;,if(yabsolute value:%dn,x,y);,例4-7 求一个数的绝对值,运行:Enter an integer:,-12,integer:-12-absolute value:12,运行:Enter an integer:,12,integer:12-absolute value:12,13,#include,main(),int a,b;,printf(Enter integer a:);,scanf(%d,printf(Enter integer b:);,scanf(%d,if(a=b),printf(a=bn);,else,printf(a!=bn);,例 2 输入两个整数并判断两数相等否,运行:Enter integer a:12,Enter integer b:12,a=b,运行:Enter integer a:12,Enter integer b:9,a!=b,14,expr1,statemnt1,非,0,=0,expr2,expr3,statemntn,statemnt3,statemnt2,非,0,非,0,=0,=0,(,1)if语句允许嵌套:,所谓if语句的嵌套是指,在“语句组1”或“语句组2”中又包含有if语句的情况。,(2)if语句嵌套时,else子句与if的,匹配原则,:与在它上面、距它最近、且尚未匹配的if配对。书写时注意形成层次;,(3)为明确匹配关系,避免匹配错误,,强烈建议,:将内嵌的if语句,一律用花括号括起来。,形式三,:,格式,:,if(,expr1,),语句组,1;,else if(expr2),语句组,2;,else if(expr3),语句组,3;,else,语句组,n;,执行过程:,15,else总是和它上面离它最近的未配对的if配对,if(),if(),if(),else.,else.,else.,例:if(salary1000),index=0.4;,else if(salary800),index=0.3;,else if(salary600),index=0.2;,else if(salary400),index=0.1;,else,index=0;,if,else,配对原则,例:if(salary1000)index=0.4;,else,if(salary800)index=0.3;,else,if(salary600)index=0.2;,else,if(salary400)index=0.1;,else index=0;,16,例:if(a=b),if(b=c),printf(“a=b=c”);,else,printf(“a!=b”);,修改:if(a=b),if(b=c),printf(“a=b=c”);,else,printf(“a!=b”);,实现if else,正确配对方法:加,输入a=1,b=1,c=3,结果输出为:,a!=b,17,如:if(a=b,if(3)printf(“OK”);,if(a)printf(“%d”,a);,说明:,if,后面的表达式类型任意,if.else,相匹配,例 考虑下面程序的输出结果:,#include,main(),int x,y;,scanf(“%d,%d”,if(xy),x=y;y=x;,else,x+;y+;,printf(“%d,%dn”,x,y);,Compile Error!,例 考虑下面程序的输出结果:,#include,main(),int x,y;,scanf(“%d,%d”,if(xy),x=y;,y=x;,else,x+;,y+;,printf(“%d,%dn”,x,y);,18,if,语句嵌套,:,一般形式:,if(expr1),if(expr2)statement1,else statement2,else,if(expr3)statement3,else statement4,内嵌if,内嵌if,if(expr1),if(expr2),statement1,else,statement2,内嵌if,if(expr1),if(expr2),statement1,else,statement3,内嵌if,if(expr1),statement1,else,if(expr3),statement3,else,statement4,else中,内嵌if,19,#include,main(),char c;,printf(Enter a character:);,c=getchar();,if(c=0,&c=A,&c=a,&c=z),printf(The character is a lower lettern);,else,printf(The character is other charactern);,例4-8 判断输入字符种类,运行:Enter a character:,The character is a control character,运行:Enter a character:8,The character is a digit,运行:Enter a character:D,The character is a capital letter,运行:Enter a character:h,The character is a lower letter,运行:Enter a character:F1,The character is other character,20,例4-9 考虑下面程序输出结果:,main(),int x=100,a=10,b=20;,int v1=5,v2=0;,if(a 0)m=m+n;,if(a60n”);,break;,.,如:,case A:,printf(“score90n”);,printf(“good!n”);,case B:,case C:,printf(“score60n”);,.,24,例4-11,switch(score),case 5:printf(“Very good!”);,case 4:printf(“Good!”);,case 3:printf(“Pass!”);,case 2:printf(“Fail!”);,default :printf(“data error!”);,运行结果:score为5时,输出:,Very good!Good!Pass!Fail!data error!,例4-11,switch(score),case 5:printf(“Very good!”);,break;,case 4:printf(“Good!”);,break;,case 3:printf(“Pass!”);,break;,case 2:printf(“Fail!”);,break;,default :printf(“data error!”);,运行结果:score为5时,输出:,Very good!,25,例4-12,void main(),int x=1,y=0,a=0,b=0;,switch(x),case 1:,switch(y),case 0:a+;break;,case 1:b+;break;,case 2:a+;b+;break;,case 3:a+
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!