if分支结构程序设计.ppt
例题:将一元硬币换成5分、2分、1分的50个硬币,问有多少种组合?,#includevoid main()int i,j,k,s=0;for(i=0;i=20;i+)for(j=0;j=50;j+)for(k=0;k=50;k+)if(i+k+j=50,第6章 if语句的应用,本章重点:if语句的三种形式 if语句的应用 ifelse语句的应用 ifelse if语句的应用 if嵌套语句的应用,本章难点:ifelse if 的使用 if嵌套语句的使用 if语句与循环语句的联合使用,if语句用来实现选择(分支)结构程序设计。选择结构有二分支和多分支。if语句实现二分支,switch语句实现多分支。if语句用来判断所给定的条件是否满足,根据判断结果(真或假)来决定执行哪种操作。if语句有三种格式:(一)if(条件表达式)语句(二)if(条件表达式)语句1 else 语句2(三)if(表达式1)语句1 else if(表达式2)语句2 else 语句n,if语句形式之一 if(表达式)语句块 例如:if(x=0)printf(%d,x);图6.1 if语句流程图,6.1 if语句的形式,例6.1 从键盘输入一批数据,统计其中正数的和,当输入0时程序结束。,分析:通过循环输入数据,然后判断该数是否为0,若不为0,再判断该数是否大于0,若大于0,累加;若该数为0,则程序结束。,#includeint main()int x,sum=0;scanf(%d,例6.2 从键盘输入某个学生8门课的成绩,若某一成绩大于85,则输出“该课程成绩优秀”,同时输出目前已有几门课程优秀,最后输出其平均分。,#includevoid main()int i=1,cj=0,yx=0;float sum=0,avg=0;for(i=1;i=85)printf(t该课程成绩优秀!n);yx+;printf(t累计%d门课程成绩优秀!n,yx);sum+=cj;avg=sum/8;printf(“该生总分:%0.1f 平均分:%0.1fn,sum,avg);,if语句形式之二,if(表达式)语句块1else 语句块2例如:if(x=0)printf(%d,x);else printf(%d,-x);,图6.2 if-else语句流程图,例6.3 判断从键盘输入的数是正数还是负数,当输入0时程序结束。,#includeint main()int x=1;printf(n请输入一整数(输入0程序退出):);scanf(%d,例6.4从键盘输入10个数,统计其中正数的和以及负数的和。,#includevoid main()int nsum=0,n=0,psum=0,p=0;int i,x;/*i 用于控制循环次数,x用户存储输入的数*/for(i=1;i=0)psum+=x;p+;else nsum+=x;n+;printf(“正数%d个,和为:%dn负数%d个,和为:%dn,p,psum,n,nsum);,if语句形式之三,if(表达式1)语句1else if(表达式2)语句2 else if(表达式3)语句3 else if(表达式m)语句melse 语句n,图6.3 ifelse if流程图,例6.5 把学生成绩划分为若干等级,优(90)、良(80-89)、中(70-79)、及格(60-69)、不及格(60),根据输入的成绩输出相应的等级。,#includevoid main()int grade;printf(输入学生的成绩:);scanf(%d,6.2 if嵌套语句的应用,图6.4 if嵌套语句流程图,例6.6 从键盘输入3个数作为三角形的一条边,判断是否能构成一个三角形,若能,请判断是等边、等腰、直角三角形,还是其他一般三角形。,分析:(1)构成三角形的条件:a+bc&a+ca(2)构成等边三角形:a=b&b=c(3)构成等腰三角形:a=b|b=c|a=c(4)构成直角三角形:a*a+c*c=b*b|a*a+b*b=c*c|c*c+b*b=a*a,#includevoid main()int a,b,c;printf(“请输入3个数据:);scanf(%d%d%d,例6.7 从键盘输入一个数,计算分段函数:(P84),#includeint main()int x,y;printf(“请输入一个数);scanf(%d,-1 x0,方法二:,#includeint main()int x,y;printf(请输入一个数:);scanf(%d,#includeint main()int x,y;printf(请输入一个数:);scanf(%d,方法三:,嵌套if,例6.8 输入任意三个数a、b、c,按由小到大的顺序排序后输出。(补充例题)#include void main()int a,b,c,temp;/*temp作为数据交换的中间变量使用*/printf(Please input three numbers:);scanf(%d,%d,%d,本章小结,一、if语句的三种格式:(1)if(条件表达式)语句(2)if(条件表达式)语句1 else 语句2(3)if(条件表达式)语句1 else if(条件表达式)语句2 二、if语句的嵌套 if(条件表达式1)if(条件表达式2)语句1三、if语句使用的注意事项 if语句的圆括号右面没有分号,默认语句只有一个,若超过一个语句,需要用花括号括起来。,作业与实验安排,教材P87:1,2,3,4答案写书上 5,7,8,9,10上机完成实验指导P58:实验七 if语句,