C语言分支结构程序设计.ppt
3.1算法与基本程序结构3.1.1算法简介简单算法举例2算法的特性3.1.2算法的表示1.用自然语言表示算法例如,用自然语言描述n!的求解过程,用自然语言的描述步骤如下。第一步:读取n的值。第二步:如果n0,提示“输入错误”,跳至第五步。第三步:如果n≥0,则给存放结果的变量result和代表乘数的变量i赋初值1;第四步:计算result=result*i;将乘数变量i增加1,即i=i+1,得到下一个乘数;如果i≤n,跳转到第四步,重复执行第四步,否则执行第五步;第五步:输出result第六步:结束算法小结:流程图是表示算法的较好的工具。一个流程图包括以下几部分:(1)表示相应操作的框;(2)带箭头的流程线;(3)框内外必要的文字说明。三种基本结构和改进的流程图基本程序结构小结:由三种基本结构顺序组成的算法结构,可以解决任何复杂的问题。由基本结构所构成的算法属于“结构化”的算法,它不存在无规律的转向,只在本基本结构内才允许存在分支和向前或向后的跳转。扩展:只要具有上述四个特点的都可以作为基本结构。可以自己定义基本结构,并由这些基本结构组成结构化程序。N-S图表示算法的优点比文字描述直观、形象、易于理解;比传统流程图紧凑易画。尤其是它废除了流程线,整个算法结构是由各个基本结构按顺序组成的,N--S流程图中的上下顺序就是执行时的顺序。用N--S图表示的算法都是结构化的算法,因为它不可能出现流程无规律的跳转,而只能自上而下地顺序执行。小结:一个结构化的算法是由一些基本结构顺序组成的。在基本结构之间不存在向前或向后的跳转,流程的转移只存在于一个基本结构范围之内(如循环中流程的跳转);一个非结构化的算法可以用一个等价的结构化算法代替,其功能不变。如果一个算法不能分解为若干个基本结构,则它必然不是一个结构化的算法。4.用伪代码表示算法5.用计算机语言表示算法3.2关系运算和逻辑运算3.2.1关系运算3.关系表达式3.2.2逻辑运算3.逻辑表达式3.3if语句3.3.1简单if语句3.3.2if~else语句if(表达式1)语句1elseif(表达式2)语句2elseif(表达式3)语句3……elseif(表达式m)语句melse语句n3.3.3if语句的嵌套3.3.4if语句使用注意事项#includestdio.hintmain(){intx;inty=-1;scanf(%d,x);if(x!=0)if(x0)y=1;elsey=0;printf(%d\n,y);}#includestdio.hintmain(){intx,y=0;scanf(%d,x); if(x=0)if(x0)y=1;elsey=-1;printf(%d\n,y);}程序举例程序举例程序举例3.4switch语句程序举例程序举例3.5条件运算符#includestdio.hvoidmain(){intx,y;scanf(“%d”,x);{程序段}printf(“x=%d,y=%d\n”,x,y);}上例中的程序段有四个,请判断哪个是正确的?程序1:程序2:If(x0)if(x=0)Y=-1;if(x0)y=1;Elseelsey=0;If(x==0)y=