- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言有两种选择语句:
(1)if语句,实现两个分支的选择结构
(2)switch语句,实现多分支的选择结构
4.1 选择结构和条件判断
例4.1 求 ax2 bx c 0 方程的根。
由键盘输入a,b,c。假设a,b,c的值任意, 并不保证 b2 4ac 0。需要在程序中进行 判别,如果 b2 4ac 0 ,就计算并输出方 程的两个实根,否则就输出“方程无实根” 的信息。
例: if(x>y)
printf(“%d”,x);
例:
if(a>b) {t=a; a=b; b=t;}
2. if (表达式) 语句1
else 语句2 (有else子句)
例: if (a>0) printf(“A is a positive\n”); else printf(“A is not a positive\n”);
解题思路:
输入a,b,c 计算disc 假 计算x1,x2
Disc<0
真
输出无实根
输出x1,x2
#include <stdio.h>
#include <math.h>
void main ( ) { double a,b,c,disc,x1,x2,p,q; scanf("%lf%lf%lf",&a,&b,&c); disc=b*b-4*a*c;
第4章 选择结构程序设计
4.1 选择结构和条件判断
4.2 用if语句实现选择结构 4.3关系运算符和关系表达式 4.4 逻辑运算符和逻辑表达式 4.5 条件运算符和条件表达式
4.6 用switch语句实现多分支选择结构
4.7选择结构程序综合举例
4.1 选择结构和条件判断
在现实生活中,需要进行判断和选择的 情况是很多的
解题思路:可以先用伪代码写出算法:
if a>b,a和b对换 if a>c,a和c对换 if b>c,b和c对换 顺序输出a,b,c (a是a、b中的小者) (a是三者中最小者) (b是三者中次小者)
#include <stdio.h> void main() { float a,b,c,t; scanf("%f,%f,%f",&a,&b,&c); if(a>b) 如果 a>b,将a和b对换 { t=a; a=b; b=t; } a是a、b中的小者 if(a>c) { t=a; a=c; c=t; } if(b>c) { t=b; b=c; c=t; } printf("%5.2f,%5.2f,%5.2f\n",a,b,c); }
互换前 互换后
A A
★
●
●B
★B
4.2.1 用if语句处理选择结构举例
C
★
ห้องสมุดไป่ตู้
A
★
●B
4.2.1 用if语句处理选择结构举例
C
★
A
● ★
●B
4.2.1 用if语句处理选择结构举例
C
★
A
●
●B ★
#include <stdio.h> void main() { float a,b,t; scanf("%f,%f",&a,&b); if(a>b) 如果a>b { t=a; 将a和b的值互换 a=b; b=t; } printf("%5.2f,%5.2f\n",a,b); }
4.2.3选择结构的嵌套
4.2.3选择结构的嵌套
#include <stdio.h> #include<math.h> void main( ) { float x,y; scanf(“f%”,&x); if(x<-3) y=x-1; else if(x<=3)y=sqrt(9-x*x); else y=log10(x); printf(/n“%f %f/n”,x,y);}
例:要求输入学生考试的分数,输出等级. score>=90 输出 Excellent! score>=80输出Good! score>=70输出Middle! score>=60输出Pass! score>=60输出Fail!
#include <stdio.h>
void main( ) {float score; scanf(“%f”,&score);
#include <stdio.h> void main() { float a,b,c,t; scanf("%f,%f,%f",&a,&b,&c); if(a>b) { t=a; a=b; b=t; } if(a>c) { t=a; a=c; c=t; } if(b>c) 如果 b>c,将b和c对换 { t=b; b=c; c=t; } b是三者中的次小者 printf("%5.2f,%5.2f,%5.2f\n",a,b,c); }
分号不能丢
printf(“input score:”);
if(score>=90) printf(“Excellent!\n”);
else if(score>=80) printf(“Good!\n”); else if(score>=70) printf(“Middle!\n”);
else if(score>=60) printf(“Pass!\n”);
else printf(“Fail!\n”); }
说明: else子句不能单独使用,必须与if语句配对 使用。
else语句与它最近的if语句配对.
3种形式的if语句中在if后面都有表达式, 一般为逻辑表达式或关系表达式。
例: if(n>6) if(n<12) printf(“n大于6且小于12\n”); else printf(“ \n”);
#include <stdio.h> void main() { float a,b,c,t; scanf("%f,%f,%f",&a,&b,&c); if(a>b) { t=a; a=b; b=t; } if(a>c) 如果 a>c,将a和c对换 { t=a; a=c; c=t; } a是三者中的小者 if(b>c) { t=b; b=c; c=t; } printf("%5.2f,%5.2f,%5.2f\n",a,b,c); }
if (disc<0) printf(“has not real roots\n”); else { p=-b/(2.0*a); q=sqrt(disc)/(2.0*a); x1=p+q; x2=p-q; printf(“real roots:\nx1=%7.2f\n x2=%7.2f\n”,x1,x2); } }
算体指数,然后判断你的体重属于何种类型。
#include<stdio.h> void main( ) {float h,w,t; printf("Please enter h,w:"); scanf("%f,%f",&h,&w); t=w/(h*h); if (t<18) printf("t=%f Low weight!\n",t); else if (t<25) printf("t=%f Standard weight!\n",t); else if (t<27) printf("t=%f Higher weight!\n",t); else printf("t=%f\tToo fat!\n",t); }
4.2.3 选择结构的嵌套
例:判断某人是否属于肥胖体型。根据身高与体重因
素,医务工作者经调查分析给出了以下“体指数”.
体指数t=体重w/(身高 h)² (w为千克,h为米)
“体指数”对肥胖程度的划分: 当t<18时,为低体重; 当t介于18到25之间时,为正常体重; 当t介于25到27之间时,为超重体重; 当t>=27时,为 肥胖。 编程从键盘输入你的身高和体重,根据给定公式计
选择结构,用if语句实现的
if (disc<0) printf(“has not real roots\n”); else { p=-b/(2.0*a); q=sqrt(disc)/(2.0*a); x1=p+q; x2=p-q; printf(“real roots:\nx1=%7.2f\n x2=%7.2f\n”,x1,x2); } } 复合语句用一对花括号{ }包围起来 的一条和多条语句。
#include <stdio.h>
#include <math.h>
void main ( ) { double a,b,c,disc,x1,x2,p,q; scanf("%lf%lf%lf",&a,&b,&c); disc=b*b-4*a*c;
计算b2-4ac,disc的值变为8
if (disc<0) 8<0为假 printf(“has not real roots\n”); else { p=-b/(2.0*a); p的值变为-1 q=sqrt(disc)/(2.0*a); q的值变为0.71 x1=p+q; x1的值变为-0.29 x2=p-q; x2的值变为-1.71 printf(“real roots:\nx1=%7.2f\n x2=%7.2f\n”,x1,x2); } }