scanf函数(格式输入函数)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
表示条件 实现选择结构
5.1 关系运算符和关系表达式
关系运算实质是比较运算,它是将两个值进行比较, 判断其比较的结果是否符合给定的条件,其结果为真(1) 或者为假(0)。
5.1.1关系运算符及其优先次序
C语言提供了6种关系运算符:
< 小于 <= 小于或等于 > 大于 >= 大于或等于
== 等于 != 不等于
if (number>500) cost=0.15;
else if (number>300) cost=0.10;
假
number>500
真
number>300
else if (number>100) cost=0.075;
else if (number>50) cost=0.05;
假 else
cost=0;
a*b||c
!b&&c
0||a
说明:
1)对于“&&”和“| |”逻辑运算符,在逻辑表达式求解 中,有时并不需要执行所有的逻辑运算符。例如:
a&&b&&c,如果a为假,就不必判别b和c的值; a | | b | | c,如果a为真,也不必判别b和c的值了。 所以,对于(m=a>b)&&(n=c>d),如果“a>b”的值为 0,则n将不进行赋值运算而保留原值(Why?);
说明:1)关系 优先级相同(高) 运算符的优先级
低于算术运算; 2)关系运算符 的优先级高于赋 值运算符 优先级相同(低)
关系运算符结合方向自左向右
5.1.2关系表达式
用关系运算符将两个表达式(可以是算术表达式或 关系表达式,逻辑表达式、赋值表达式、字符表达式) 连接起来的式子,称为关系表达式。下面为一些合法的 关系表达式
(高) (低)
结合方向除了!都是
从左至右
5.2.2 逻辑表达式 给出逻辑运算结果: 数值1代表“真”,数值0代表
“假”
判断一个量是否为“真” : 0代表“假”,非0代表 “真”
例:
1)若a=4,则!a 2)若a=4,b=5 则 a&&b a | | b ! a | | b; 3)5>3&&2 || 8<4-!0的值 4)‘c’&&’d’的值
x!=0 a+b>b+c (a=3)>(b=5)
‘a’>‘b’
关系表达式的结果只有两种:真或假;在C语言中, 以1代表“真”,0代表“假”。
例:假设a=3,b=2,c=1,则:
(a>b)==c 结果为:表达式的值为1(真);
d=a>b f=a>b>c
结果为:d 的值为1,表达式的值为1 ; 结果为:f 的值为0,表达式的值为0 ;
else cost=0;
3)在if和else后面可以只含一个内嵌的操作语句,也可以有多个操作 语句,此时须用花括号“{ }”将几个语句括起来成为一个复合语句。 例:
if (a > b) {
m=a; printf(“The MAX number is %d”, m); } else { m = b; printf(“The MAX number is %d”, m); }
if (‘a’) printf(“%d”,’a’); 打印’a’的ASCII码97 2)注意在if 语句第二、三形式中每个语句后都有分号;
if (number>500) cost=0.15; else if (number>300) cost=0.10; else if (number>100) cost=0.075; else if (number>50) cost=0.05;
关系表达式,逻辑表达式、赋值表达式、字符表达式) 连接起来的式子,称为关系表达式。
关系表达式的结果只有两种:真或假;在C语言中, 以1代表“真”,0代表“假”。 例:假设a=3,b=2,c=1,则:
(a>b)==c
d=a>b
f=a>b>c
5.2逻辑运算符和逻辑表达式
5.2.1逻辑运算符及其优先次序 C语言提供三种逻辑运算符:
x<1+a&&y≤b
(x 1)(x 2)
f (x) x
定义域 (x-1)*(x-2) ≥0&&x!=0
5.3 if 语句
5.3.1 if 语句的三种形式: 1. if (表达式) 语句 执行过程,如左图:
if (x>y) printf (“%d”,x);
假(0) x>y
真(非0) printf (“%d”,x)
5.1.1关系运算符及其优先次序
C语言提供了6种关系运算符:
< 小于 <= 小于或等于 > 大于 >= 大于或等于
== 等于 != 不等于
说明:1)关系 优先级相同(高) 运算符的优先级
低于算术运算; 2)关系运算符 的优先级高于赋 值运算符 优先级相同(低)
关系运算符结合方向自左向右
5.1.2关系表达式 用关系运算符将两个表达式(可以是算术表达式或
例5.1:输入两个实数,按代数值由小到大的次序 输出这两个数;
分析:这是一个简单而重要的程序,算法的关键在与设 置一个中间交换变量,用于比较两个实数的大小 后进行次序的变换;
设a=8,b=5 a=b; b=a;
引入中间变量t t=a; a=b; b=t;
a
b
t
例5.1:输入两个实数,按代数值由小到大的次序输出这 两个数; 分析:这是一个简单而重要的程序,算法的关键在与设
引例 计算函数值
y
sin( 1
x)
/
xBaidu Nhomakorabea
x0
x0
需考虑①输入x ②判断x的值 ③根据x的值,计算y值 ④输出y值 显然②③顺序结构不能实现,须引入选择结构
#include <stdio.h> #include<math.h>
输入x
void main() {float x,y;
成立 x≠0
scanf(“%f”,&x);
5.3 if 语句
5.3.1 if 语句的三种形式: 1. if (表达式) 语句 执行过程,如左图:
if (x>y) printf (“%d”,x);
假(0) x>y
真(非0) printf (“%d”,x)
假(0) 表达式
真(非0) 语句
if(x>y) { z=y; y=x; x=z; }
假(0)
(year%4==0&&year%100!==0)| |year%400==0
平年:!((year%4==0&&year%100!=0)| |year%400==0)
year%4!=0||(year%100==0&&year%400!=0)
练习写出c语言的表达式
|x|>2
x>2||x<-2
x<1+a并y≤b
假(0) 表达式
真(非0) 语句
if(x>y) { z=y; y=x; x=z; }
假(0)
x>y
真(非0)
z=x
y=x
x=z
假(0)
x>y
真(非0)
z=x
y=x
x=z
5.1 关系运算符和关系表达式
关系运算实质是比较运算,它是将两个值进行比较, 判断其比较的结果是否符合给定的条件,其结果为真(1) 或者为假(0)。
例:设a=1,b=-5,c=‘a’,则:
(1)c>a+b
1
(2)a==b<c
1
(3)a=b<c
1
5.2逻辑运算符和逻辑表达式
5.2.1逻辑运算符及其优先次序 C语言提供三种逻辑运算符:
(1)&& (2) | | (3) !
逻辑与(与运算符) 逻辑或(或运算符) 逻辑非(非运算符)
说明:1)“&&”和“| |”为双目运算符,“!”为单目运 算符;
2)逻辑运算的结果只有两种:真或假。逻辑运
算的真值表详细情况见书P89表5.1。
几种运算符的优先次序为:
! (非) 算术运算符 关系运算符 &&和| | 赋值运算符
(高) (低)
例:!a&&b| |x>y&&c
结合方向除了!都是
从左至右
5.2.2 逻辑表达式 给出逻辑运算结果: 数值1代表“真”,数值0代表
写出逻辑表达式: 首先分析逻辑结构:
1、条件(1)和条件(2)的关系应该是“或”; 2、而每个条件内部应该为“与”关系; 3、条件(2)内,满足被400整除的一定满足被4整除,因 此只需一个逻辑表达式即可; 所以最后的逻辑表达式为:
((year%4==0)&&(year%100!=0))| |(year%400==0) 根据运算符的优先级关系,上式可简化为:
(1)&& (2) | | (3) !
逻辑与(与运算符) 逻辑或(或运算符) 逻辑非(非运算符)
说明:1)“&&”和“| |”为双目运算符,“!”为单目运 算符;
2)逻辑运算的结果只有两种:真或假。逻辑运
算的真值表详细情况见书P89表5.1。
几种运算符的优先次序为:
! (非) 算术运算符 关系运算符 &&和| | 赋值运算符
x>y
真(非0)
z=y
y=x
x=z
假(0)
x>y
真(非0)
z=y
y=x
x=z
2. if (表达式) 语句1 else 语句2
例如:
if (x>y) printf (“%d”,x);
真(非0)
else printf(“%d”,y);
表达式
假(0)
真(非0) x>y
语句1 假(0)
语句2
printf (“%d”,x)
y=sin(x)/x
if(x!=0.0) y=sin(x)/x;
输出y
else
y=1; printf(“x=5.2%f\ty=7.4%f”,x,y); }
运行情况: 2↙ x=2.00
不成立 y=1
y=0.4546
判别选择结构程序设计
首先判别条件,若条件满足,程序执行a块,否则,执行b块;
成立
不成立
“假” 判断一个量是否为“真” : 0代表“假”,非0代表
“真” 例:
1)若a=4,则!a=0; 2)若a=4,b=5 则 a&&b=1;a | | b=1;! a | | b=1; 3)5>3&&2 || 8<4-!0的值为1; 4)‘c’&&’d’的值为1; 例:写出表达式的值a=2,b=0,c=-2.5
经过三次比较和变换后:a为最小值,b为次小值,c为最大值。
#include <stdio.h>
输入a、b,c
void main( )
是
{
t=a;
float a, b, c, t;
a=b;
scanf(“%f,%f,%f”, &a, &b, &c);
置一个中间交换变量,用于比较两个实数的大小 后进行次序的变换; 程序: main( )
{ float a, b, t; scanf(“%f,%f”, &a, &b); if (a > b) { t = a; a = b; b = t; } printf(“%5.2f,%5.2f”, a, b);
}
例5.2 输入3个数a、b、c,要求按由小到大的顺序输出; 分析: 1)对于任意两个数a、b:
以下程序的输出结果是( )。
main()
{
int a= -1, b=4, k;
k=(++a<0)&&!(b--<=0);
printf(“%d%d%d\n”, k, a, b);
}
A) 104
B) 103
C) 003
D) 004
一个重要的例子: 判断某一年是否为闰年的方法。而为闰年的条件是符合下
面两者之一: (1)能被4整除,但不能被100整除; (2)能被4整除,又能被400整除;
条件成立?
执行a块
执行b块
满足条件否
满足
不满足
执行a块 执行b块
传统流程图
N-S流程图
第五章 选择结构程序设计
要设计选择结构程序,要考虑两个方面的问题:一是 在C语言中如何来表示条件,二是在C语言中实现选择结 构用什么语句。
5.1 关系运算及其表达式 5.2 逻辑运算及其表达式 5.3 if语句 5.4 switch语句 5.5 选择结构程序举例
若a<b,则输出a,b 否则输出b,a 2)对于三个数,有6种可能:
a>b>c
a >c>b
b>a>c
b>c>a
c>a>b
c>b>a
3)其伪代码算法为: if a>b 将a和b对换 (对换之后,a比b小) if a>c 将a和c对换 (对换之后,a比c小,a为最小) if b>c 将b和c对换 (对换之后,b比c小,b为次小)
假
真
number>100
假
真
number>50
真
cost=0.15 cost=0.10 cost=0.075 cost=0.05 cost=0
说明:
1)if 语句中在if后面都有表达式,一般为逻辑表达式或 关系表达式,也可以为其它表达式;如果表示式的值为0, 则按“假”处理,如果为非0,则按“真”处理; 例如:if (3) printf(“O.K.”); 直接执行打印“O.K.”
printf(“%d”,y)
表达式1 真
语句1
假 表达式2 真
语句2
假 表达式3 真 语句3
3. if (表达式1) 语句1 else if (表达式2) 语句2 else if (表达式3) 语句3 … else if (表达式m) 语句m else 语句n
假
表达式4 真 语句4
假 语句5
例: