If语句有三种基本形式
(1)
if (判断条件) 执行语句;
(2)
if (判断条件) 执行语句1;
else 执行语句2;
(3)
if (判断条件1) 执行语句1;
else if (判断条件2) 执行语句2;
……
else if (判断条件n) 执行语句n;
else 执行语句n+1;
例,输入两个数a,b按由小到大的顺序输出
#include
int main()
{
float a, b, t;
scanf_s("%f,%f", &a, &b);
if (a > b)
{
t = a;
a = b;
b = t;
}
printf("%5.2f, %5.2f", a, b);
return 0;
}
例,输入三个数a,b,c,按由小到大的顺序输出
#include
int main()
{
float a, b, c, t;
scanf_s("%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)
{
t = b;
b = c;
c = t;
}
printf("%5.2f, %5.2f, %5.2f", a, b, c);
return 0;
}
关系运算符有
(1)
>、<、>=、<=
(2)
==(等于)、!=(不等于)
其中,优先级:(1)高于(2)
此外,优先级顺序:
算数运算符>关系运算符>赋值运算符
用关系运算符将表达式连接起来的式子称为关系表达式,例如
a > b, a + b > b + c, (a = 3) > (b = 5), ’a’ < ‘b’, (a > b) > (b < c)
关系表达式的值是一个逻辑值,即“真”或“假”。逻辑运算中,1代表“真”,0代表“假”
例如,
a=3,b=2,c=1;
则,
关系表达式a>b的值为“真”,表达式的值为“1”;
关系表达式c>b的值为“假”,表达式的值为“0”;
关系表达式
(a>b)==c
的值为“真”,表达式的值为“1” &&(与)、||(或)、!(非) 用逻辑运算符将关系表达式或逻辑量连接起来的式子称为逻辑表达式,逻辑表达式的值是一个逻辑量“真”或“假”,任何非零的数值被认作“真”。 例:设a = 4,b = 5,则 例:‘c’&&’d’的值为1; 例:5>3&&8<4-!0的值为0; 条件运算符的格式: 先求解表达式1,若其值为真,则将表达式2的值赋给整个表达式;否则将表达式的值赋给整个表达式。例如 其含义是:若a>b成立,则max=a;若a>b不成立,则max=b 优先级:算数运算符>关系运算符>条件运算符>赋值运算符 max=(a>b)? a:b; 相当于 max=a>b? a:b; 例,输入一个字符,判别它是否大写字母,如果是,将它转换成小写字母;如果不是,不转换。输出最后得到的字符。 在if语句中可以包含一个或多个if语句,形式: 例,有一个函数 y = { − 1 x < 0 0 x = 0 1 x > 0 , y=\begin{cases}-1 & x<0\\0 & x=0\\1 & x>0\\\end{cases}, y=⎩⎪⎨⎪⎧−101x<0x=0x>0, 编写程序,输入一个x值,输出y值 当然,上面程序的选择结构也可以为: switch语句是多分支选择语句,一般形式为: 注: 例,按照考试成绩的等级输出百分制分数段 再如, (1)输入一个年份,判断是否是闰年。 (2),输入a,b,c的值,求二次方程 的根 (3)运输公司对用户计算运费 设每公里每吨货物的基本运费为p,货物重为w,距离为s,折扣为d,则总运费f的计算公式为:
关系表达式b+c
4.3 逻辑运算符和逻辑表达式
4.3.1 逻辑运算符
a&&b:a、b都真,则表达式为真;
a||b:a、b有真则真;
!a:若a真,则!a假;
优先级:!(非)> 算数运算符>关系运算符>&&和||>赋值运算符(a>b)&&(x>y) 等价于 a>b && x>y
(a==b)||(x==y) 等价于 a==b || x==y
(!a)||(a>b) 等价于 !a || a>b
4.3.2 逻辑表达式
!a的值为0 ;
a&&b的值为1;
a||b的值为1;
!a||b的值为1;
4&&0||2的值为1;
注:
在逻辑表达式的求解中,并不是所有的逻辑运算符都要被执行,例如
a||b||c:只要a为真,则不必判断b和c的值,只有当a为假时才继续判断;4.4 条件运算符和条件表达式
表达式1?表达式2:表达式3
max=(a>b)? a:b;
用条件表达式:if (a > b) max = a;
else max = b;
a>b? a:b+1; 相当于 a>b? a:(b+1);#include
4.5 选择结构的嵌套
if()
if() 语句1
else 语句2
else
if() 语句3
else 语句4
#include
if (x < 0) y = -1;
if (x == 0) y = 0;
if (x > 0) y = 1;
4.6 switch语句
switch(表达式)
{
case 常量1:语句1
case 常量2:语句2
…
case 常量n:语句n
default: 语句n+1 [可以缺省]
}
(1) switch后面括号内的“表达式”,其值可以是整型或字符型。
(2) 当表达式的值与某一个case后面的常量相等时,就执行此case后面的语句。若没有与表达式相匹配的case常量,就执 行default后面的语句。
(3) 每一个case的常量的值必须互不相同,否则就会互相矛盾。
(4) 各个case分支和default的出现次序不影响执行结果。
(5) 可以多个case共用一组执行语句。#include
#include
4.7 程序应用
判断条件:能被4整除,但不能被100整除或者能被100整除,又能被400整除。#include
算法:若a=0,不是二次方程;
若a!=0,
若 b^2-4ac>0,方程有两个不等的实根 ;
若 b^2-4ac=0,方程有两个相等的实根 ;
若 b^2-4ac<0,方程有两个共轭复根;
#include
路程越远,每公里运费越低。标准如下:s<250 没有折扣
250≤s<500 2%折扣
500≤s<1000 5%折扣
1000≤s<2000 8%折扣
2000≤s<3000 10%折扣
3000≤s 15%折扣
分析折扣变化的规律性:
折扣的“变化点”都是250的倍数 在横轴上加一种坐标c,c的值为s/250。c<1, 无折扣;
1≤c<2, 折扣d=2%;
2≤c<4, d=5%;
4≤c<8, d=8%;
8≤c<12, d=10%;
c≥12, d=15%。
#include