c语言-第5课选择结构程序设计
合集下载
C语言第5讲--选择程序设计

X 错误!
语句1
else子句条件默认为:所有不满足if子句 条件的情况下,都执行else子句的步骤, 因此不需要再写执行后面步骤所需的条件 (即不再有圆括号和圆括号里的条 件),else后面也不要加分号
5
2双边选择结构
格式: if (表达式) 语句1 else 语句2
执行过程:
表达式取值非0,即条件成立,执行语句1后继续向下执行
•为了使逻辑关系清晰,注意培养良好的程序设计习惯。
14
if(表达式)中的表达式对执行方向的影响
if语句执行的实质是判断表达式的值是否为 0来决定执行语句1还是语句2。 即if语句先去计算表达式的值,当表达式最 终值不为0时执行if子句,否则执行else子 句。
15
四、条件运算符
条件运算符(三目): ? :
16
条件运算符使用举例
有如下程序: main( ) { int a=3,b=4,c; c=a>b?a:b; if(a>b) c=a; else c=b; printf("max=%d\n",c); }
语句:c=a>b?a:b;执行以后,变量c中存放的是 变量a,b中的最大值
17
五、switch 语句(多分支选择语句) 根据此表达式
判断条件
表达式取值为0,即条件不成立,跳过语句1执行语句2后向 下执行 (入口)
Y
语句1
P
N
语句2
(出口)
6
3.多层选择结构
格式:
当我们遇到 的情况不只 一种,且针 对每种情况 我们要采取 不同的步骤 措施时,使 用多层选择 结构
if (表达式1) 语句1 else if (表达式2) 语句2 第2种情况 else if (表达式3) 语句3 及相应的措 : : 施,注意前 面是写 : : else if else if (表达式n) 语句n else 语句n+1 最后一种情况及相应的措施,
语句1
else子句条件默认为:所有不满足if子句 条件的情况下,都执行else子句的步骤, 因此不需要再写执行后面步骤所需的条件 (即不再有圆括号和圆括号里的条 件),else后面也不要加分号
5
2双边选择结构
格式: if (表达式) 语句1 else 语句2
执行过程:
表达式取值非0,即条件成立,执行语句1后继续向下执行
•为了使逻辑关系清晰,注意培养良好的程序设计习惯。
14
if(表达式)中的表达式对执行方向的影响
if语句执行的实质是判断表达式的值是否为 0来决定执行语句1还是语句2。 即if语句先去计算表达式的值,当表达式最 终值不为0时执行if子句,否则执行else子 句。
15
四、条件运算符
条件运算符(三目): ? :
16
条件运算符使用举例
有如下程序: main( ) { int a=3,b=4,c; c=a>b?a:b; if(a>b) c=a; else c=b; printf("max=%d\n",c); }
语句:c=a>b?a:b;执行以后,变量c中存放的是 变量a,b中的最大值
17
五、switch 语句(多分支选择语句) 根据此表达式
判断条件
表达式取值为0,即条件不成立,跳过语句1执行语句2后向 下执行 (入口)
Y
语句1
P
N
语句2
(出口)
6
3.多层选择结构
格式:
当我们遇到 的情况不只 一种,且针 对每种情况 我们要采取 不同的步骤 措施时,使 用多层选择 结构
if (表达式1) 语句1 else if (表达式2) 语句2 第2种情况 else if (表达式3) 语句3 及相应的措 : : 施,注意前 面是写 : : else if else if (表达式n) 语句n else 语句n+1 最后一种情况及相应的措施,
c语言(第五章选择结构) c语言 教学课件

▪ 非闰年的判别:
• !((year%4==0 && year%100!=0)||year%400==0)或者:
• (year%4!=0 )||( year%100==0 && year%400!=0)
C语言程序设计
第五章 选择结构程序设计
5.3 if语句(条件选择语句)
• if语句的三种形式 ▪ 形式一: • 格式:
语句2
=0
表达式3 非0
语句3
=0 语句4
C语言程序设计
第五章 选择结构程序设计
• 例:
if (salary>1000) else if (salary>800) else if (salary>600) else if (salary>400) else index=0;
index=0.4; index=0.3; index=0.2; index=0.1;
if (x>0) printf(“%f”,x) ;
else printf(“%f”,-x);
(3)在if 和else 后面可以只含一个内嵌的语句,也可以有 多个操作语句,此时用花括号将几个语句括起来成为一 个复合语句。如:
if (x>y)
{ t=x ; x=y ; y=t ; }
C语言程序设计
第五章 选择结构程序设计
a=4;b=5;
!a
//值为0
a&&b //值为1
a||b
//值为1
!a||b
//值为1
4&&0||2 //值为1
5>3&&2||8<4-!0 //(5>3)&&2||(8<(4-(!0))) 值为1
• !((year%4==0 && year%100!=0)||year%400==0)或者:
• (year%4!=0 )||( year%100==0 && year%400!=0)
C语言程序设计
第五章 选择结构程序设计
5.3 if语句(条件选择语句)
• if语句的三种形式 ▪ 形式一: • 格式:
语句2
=0
表达式3 非0
语句3
=0 语句4
C语言程序设计
第五章 选择结构程序设计
• 例:
if (salary>1000) else if (salary>800) else if (salary>600) else if (salary>400) else index=0;
index=0.4; index=0.3; index=0.2; index=0.1;
if (x>0) printf(“%f”,x) ;
else printf(“%f”,-x);
(3)在if 和else 后面可以只含一个内嵌的语句,也可以有 多个操作语句,此时用花括号将几个语句括起来成为一 个复合语句。如:
if (x>y)
{ t=x ; x=y ; y=t ; }
C语言程序设计
第五章 选择结构程序设计
a=4;b=5;
!a
//值为0
a&&b //值为1
a||b
//值为1
!a||b
//值为1
4&&0||2 //值为1
5>3&&2||8<4-!0 //(5>3)&&2||(8<(4-(!0))) 值为1
第五章:选择型程序设计(C语言讲义)PPT教学课件

case ‘B’:
case ‘C’:
printf(“score>60\n”);
break;
……..
例 switch(score) { case 5: printf(“Very good!”); case 4: printf(“Good!”); case 3: printf(“Pass!”); case 2: printf(“Fail!”); default : printf(“data error!”); }
main()
{ int x,y;
运行:Enter integer x,y:12,23
printf("Enter integer x,y:");
X<Y
scanf("%d,%d",&x,&y); if(x!=y)
Enter integer x,y:12,6 X>Y Enter integer x,y:12,12
if(x>y) printf("X>Y\n");
X==Y
else printf("X<Y\n");
else
printf("X==Y\n");
}
例: if (a==b) if(b==c) printf(“a==b==c”);
else printf(“a!=b”);
修改: if (a==b) { if(b==c) printf(“a==b==c”); } else printf(“a!=b”);
运行结果:a=2,b=1
PPT教学课件
谢谢观看
Thank You For Watching
非0
=0
case ‘C’:
printf(“score>60\n”);
break;
……..
例 switch(score) { case 5: printf(“Very good!”); case 4: printf(“Good!”); case 3: printf(“Pass!”); case 2: printf(“Fail!”); default : printf(“data error!”); }
main()
{ int x,y;
运行:Enter integer x,y:12,23
printf("Enter integer x,y:");
X<Y
scanf("%d,%d",&x,&y); if(x!=y)
Enter integer x,y:12,6 X>Y Enter integer x,y:12,12
if(x>y) printf("X>Y\n");
X==Y
else printf("X<Y\n");
else
printf("X==Y\n");
}
例: if (a==b) if(b==c) printf(“a==b==c”);
else printf(“a!=b”);
修改: if (a==b) { if(b==c) printf(“a==b==c”); } else printf(“a!=b”);
运行结果:a=2,b=1
PPT教学课件
谢谢观看
Thank You For Watching
非0
=0
c语言char5

用switch语句设计上例(成绩等级) switch语句设计上例 成绩等级) 语句设计上例(
main( ){ int score; char grade; scanf("%d",&score); switch (score/10){ case 9 : grade = 'A'; break; case 8 : grade = 'B'; break; case 7 : grade = 'C'; break; case 6 : grade = 'D'; break; default: grade = 'E'; } /*default: <==>case 5:case4:…case 0:*/ printf("%c\n",grade); } (例程switch.c)
(例程switch1.c)
条件运算符
条件表达式.格式:表达式1 表达式2 表达式3 条件表达式 格式:表达式1?表达式2:表达式3 格式 if (a>b) max=a; else max=b; 可简写为: 可简写为:max = (a>b)? a: b 说明: 说明: 条件运算符为三目运算, 中唯一的一个三目运算 中唯一的一个三目运算. 1、条件运算符为三目运算,c中唯一的一个三目运算 条件运算符的执行顺序: 2、条件运算符的执行顺序: 先求表达式1的值,若为非0则求表达式2 先求表达式 1的值 , 若为非0 则求表达式2, 并将表 达式2 的值作为整个条件表达式的值, 达式 2 的值作为整个条件表达式的值 , 否则求表达式 并将表达式3的值作为整个条件表达式的值. 3,并将表达式3的值作为整个条件表达式的值
C选择结构程序设计

}
printf("The maximum value is %dn", max);
简单的选择结构程序示例
• return 0;
简单的选择结构程序示例
}
```
复杂的选择结构程序示例
• 总结词:一个复杂的示例,通过嵌套的ifelse语句实现多个条件判断和流程控制。
复杂的选择结构程序示例
嵌套if-else语句
选择结构在游戏中的应用示例
}
printf("Congratulations! You guessed the number
in %d tries.n", tries); // 输出猜测结果和猜测次数
选择结构在游戏中的应用示例
• return 0;
选择结构在游戏中的应用示例
}
```
06
总结与展望
• 人工智能与机器学习:随着人工智能和机器学习技术的不断发展,选择结构程 序设计可能会与这些领域产生更多的交叉和融合。例如,使用机器学习算法来 自动生成或优化选择结构代码,从而提高开发效率和代码质量。
THANKS
感谢观看
• 泛型编程:泛型编程是一种更通用的编程范式,它允许算法独立于特定数据类 型进行操作。泛型选择结构可以进一步提高代码的复用性和可维护性,是未来 发展的重要方向之一。
• 条件编译:条件编译是一种特殊的编程技巧,可以根据预定义的宏或条件来决 定是否编译某段代码。条件编译可以看作是一种更灵活的选择结构,它允许在 编译时根据不同条件决定程序的某些部分是否被包含。
简单的选择结构程序示例
• 总结词:一个简单的选择结构程序示例,通过if语句实现 条件判断和流程控制。
简单的选择结构程序示例
printf("The maximum value is %dn", max);
简单的选择结构程序示例
• return 0;
简单的选择结构程序示例
}
```
复杂的选择结构程序示例
• 总结词:一个复杂的示例,通过嵌套的ifelse语句实现多个条件判断和流程控制。
复杂的选择结构程序示例
嵌套if-else语句
选择结构在游戏中的应用示例
}
printf("Congratulations! You guessed the number
in %d tries.n", tries); // 输出猜测结果和猜测次数
选择结构在游戏中的应用示例
• return 0;
选择结构在游戏中的应用示例
}
```
06
总结与展望
• 人工智能与机器学习:随着人工智能和机器学习技术的不断发展,选择结构程 序设计可能会与这些领域产生更多的交叉和融合。例如,使用机器学习算法来 自动生成或优化选择结构代码,从而提高开发效率和代码质量。
THANKS
感谢观看
• 泛型编程:泛型编程是一种更通用的编程范式,它允许算法独立于特定数据类 型进行操作。泛型选择结构可以进一步提高代码的复用性和可维护性,是未来 发展的重要方向之一。
• 条件编译:条件编译是一种特殊的编程技巧,可以根据预定义的宏或条件来决 定是否编译某段代码。条件编译可以看作是一种更灵活的选择结构,它允许在 编译时根据不同条件决定程序的某些部分是否被包含。
简单的选择结构程序示例
• 总结词:一个简单的选择结构程序示例,通过if语句实现 条件判断和流程控制。
简单的选择结构程序示例
C语言第五章

T t=a a=b 开始 输入a,b a>b
学习提示: (1)算法包括输入、处理和输出三个部分 ,其中处理部分为选择结构。
b=t
F
输出a,b 结束
5
信息科学与技术学院 软件工程系
选择结构算法设计
South West Jiaotong University
【例5. 1】输入a、b值,如果a>b,那么交换a和b,使得a≤b。 解决该问题的主要步骤为: 开始
17
信息科学与技术学院 软件工程系
关系运算符和关系表达式
【例】编写以下程序,查看结果。 #include <stdio.h> void main() { int a,b,c; int d,e,f; a=4,b=5,c=6; d=a>b; e=a<b<c; f=c>b>a; printf("%d %d %d \n",d,e,f); }
South West Jiaotong University
20
信息科学与技术学院 软件工程系
逻辑运算符- 优先级
• 各类运算符的优先级关系:
South West Jiaotong University
– !(非)高于 &&(与) 高于 ||(或)。 – &&(与)和||(或)低于关系运算符 – !(非)高于 算术运算符
1)任何数值(字符、整数、实数、指针)都可以表示 逻辑意义,只要数值不等于0,就表示“真”,而0 表示“假”;
2)关系与逻辑运算表达式的运算结果为“真”,表达 式的值为int型整数1,运算结果为“假”,则表达 式的值为int型整数0。
由2)可知,C语言的关系运算表达式和逻辑运算表 达式应该属于整型表达式范畴。
学习提示: (1)算法包括输入、处理和输出三个部分 ,其中处理部分为选择结构。
b=t
F
输出a,b 结束
5
信息科学与技术学院 软件工程系
选择结构算法设计
South West Jiaotong University
【例5. 1】输入a、b值,如果a>b,那么交换a和b,使得a≤b。 解决该问题的主要步骤为: 开始
17
信息科学与技术学院 软件工程系
关系运算符和关系表达式
【例】编写以下程序,查看结果。 #include <stdio.h> void main() { int a,b,c; int d,e,f; a=4,b=5,c=6; d=a>b; e=a<b<c; f=c>b>a; printf("%d %d %d \n",d,e,f); }
South West Jiaotong University
20
信息科学与技术学院 软件工程系
逻辑运算符- 优先级
• 各类运算符的优先级关系:
South West Jiaotong University
– !(非)高于 &&(与) 高于 ||(或)。 – &&(与)和||(或)低于关系运算符 – !(非)高于 算术运算符
1)任何数值(字符、整数、实数、指针)都可以表示 逻辑意义,只要数值不等于0,就表示“真”,而0 表示“假”;
2)关系与逻辑运算表达式的运算结果为“真”,表达 式的值为int型整数1,运算结果为“假”,则表达 式的值为int型整数0。
由2)可知,C语言的关系运算表达式和逻辑运算表 达式应该属于整型表达式范畴。
C语言课件 第5章

如果x<y, max=y, min=x ③ 输出最大值max、 最小值min
第5章 选择结构程序设计
/*程序 5 - 3, 求两个数的最大值、 最小值*/ main( ) { float x, y; float max, min; printf(″请输入两个数x, y: ″); scanf(″%f, %f″, &x, &y); if (x>y) {max=x; min=y; } else {max=y; min=x; } printf(″max=%6.2f, min=%6.2f\n″, max, min); } 输入数据: 1.2, 2.54 运行结果: max= 2.54, min= 1.20
第5章 选择结构程序设计
5.1.3 多分支if语句
多分支if语句不是一条具体的语句,它通过if语句的嵌套实
现。其一般形式为: if (条件表达式1)
if (条件表达式2) 语句1
else 语句2 else if (条件表达式3) 语句3 else 语句4
第5章 选择结构程序设计
T T
条件表达式1 条件表达式2
}
第5章 选择结构程序设计
例 5 — 7 将例 5 — 5 用switch语句实现。
switch ((int)(cj/10)) { 10: 9: ch=′A′; break; /*注意选择表达式的构造*/
8: ch=′B′; break;
7: ch=′C′; break; 6: ch=′D′; break;
第5章 选择结构程序设计
例 5 –3 输入两个数, 求两个数的最大值、最小值。 数据分析:
输入量: 两个数x、 y, float
第5章 选择结构程序设计
/*程序 5 - 3, 求两个数的最大值、 最小值*/ main( ) { float x, y; float max, min; printf(″请输入两个数x, y: ″); scanf(″%f, %f″, &x, &y); if (x>y) {max=x; min=y; } else {max=y; min=x; } printf(″max=%6.2f, min=%6.2f\n″, max, min); } 输入数据: 1.2, 2.54 运行结果: max= 2.54, min= 1.20
第5章 选择结构程序设计
5.1.3 多分支if语句
多分支if语句不是一条具体的语句,它通过if语句的嵌套实
现。其一般形式为: if (条件表达式1)
if (条件表达式2) 语句1
else 语句2 else if (条件表达式3) 语句3 else 语句4
第5章 选择结构程序设计
T T
条件表达式1 条件表达式2
}
第5章 选择结构程序设计
例 5 — 7 将例 5 — 5 用switch语句实现。
switch ((int)(cj/10)) { 10: 9: ch=′A′; break; /*注意选择表达式的构造*/
8: ch=′B′; break;
7: ch=′C′; break; 6: ch=′D′; break;
第5章 选择结构程序设计
例 5 –3 输入两个数, 求两个数的最大值、最小值。 数据分析:
输入量: 两个数x、 y, float
C语言-选择结构程序设计

if (‘A’) printf(‚%d‛,‘a’);也是合法的。
⑵ 后面两种形式的if语句中,每个else前面有一个分 号,不要错认为是两个语句。 如: if (x>0)
printf("%f",x); else printf("%f",-x);
各有一个分号
⑶ if 和else后面有多个语句时,可以使用复合语 句,即用‚{}‛将多个 语句括起来。
Y
表达式
N
else printf("%d",y);
语句1 语句2
例:编程,判断任意输入一个整数x是不 是正数,若是则将该数输出。
程序如下:
main() { int x; scanf(“%d”,&x); if (x>0) printf(“\nx=%d\n”,x); }
例:编程,判断任意输入的一个正整数是 不是偶数,若是则输出YES,否则输出 NO。
5.3.2 if语句的嵌套
在 if 语句中又包含一个或多个 if 语句称为 if 语句的嵌套。其一般形式为: if ( ) if ( ) 语句1; 内嵌 if 语句 else 语句2; else if ( ) 语句3; 内嵌 if 语句 else 语句4;
说明:应注意 if 与 else 的对应关系,else总是与 它上面最近的 if 配对,若if与 else 的数目不一致, 可以加{ }来确定配对关系。
程序如下:
main() { int x; scanf(“%d”,&x); if (x%2==0) printf(“YES”); else printf(“NO”); }
3. if(表达式1) 语句1; else if(表达式2) 语句2; …… else if(表达式m) 语句m; else 语句n;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
2018/10/14
2018/10/14
4
5.1.1 关系运算符及其优先次序
1.关系运算符 C语言提供6种关系运算符: < (小于) <= (小于或等于) > (大于) >= (大于或等于) == (等于) != (不等于) 2.优先级 (1)在关系运算符中,前 4个优先级相同,后2个也相同, 且前4个高于后2个。 (2)与其它种类运算符的 优先级关系 关系运算符的优先级,低 于算术运算符,但高于赋值运 算符。(P366)
例如, (year%4==0)&&(year%100!=0)||(year%400==0) 是一个判断一个年份是否是闰年的逻辑表达式。
逻辑表达式的值也是一个逻辑值(非“真”即 “假”)。
2018/10/14
11
2.逻辑量的真假判定──0和非0
C语言用整数“1”表示“逻辑真”、用“0”表示 “逻辑假”。 判断一个数据的“真”或“假”时,却以0和非0为 根据:如果为0,则判定为“逻辑假”;如果为非0, 则判定为“逻辑真”。
2 . 关 系 表 达 式 的 值 —— 逻 辑 值 ( 非 “ 真 ” 即
由于C语言没有逻辑型数据,所以用: 整数“1”表示“逻辑真”;用整数“0”表示“逻辑 假”。
2018/10/14 6
例如,假设n1=3,n2=4,n3=5,则:
(1)n1>n2的值 (2)(n1>n2)!=n3的值 (3)n1<n3<n2的值 (4)(n1<n2)+n3的值
第5章
选择结构程序设计
要设计选择结构程序,要考虑两个方面的问 题:一是在 C语言中如何来表示条件,二是在 C 语言中实现选择结构用什么语句。 在 C 语言中表示条件,一般用关系表达式或 逻辑表达式,实现选择结构用 if 语句或 switch 语 句。 5.1 关系运算及其表达式 5.2 逻辑运算及其表达式 5.3 if语句 5.4 switch语句 5.5 选择结构程序举例 良好的源程序书写风格──注释
(2)指定else子句时 当“表达式”的值不等于0(即判定为“逻辑真”)时,则执行语 Y N 句组1,然后转向下一条语句;否则,执行语句组 2。如图5-5(b)所示。
3.if语句的嵌套与嵌套匹配原则
if 语句允许嵌套。所谓 if 语句的嵌套是指,在“语句组 1” 或(和) 真(非0) 语句1 if语句的情况。 语句2 假 “语句组2”中,又包含有 if语句嵌套时,else子句与if的匹配原则:与在它上面、距它最近、 (0) 且尚未匹配的if配对。 语句1
为明确匹配关系,避免匹配错误,建议:将内嵌的 if 语句,一律 用花括号括起来。
条件 表达式
2018/10/14
17
[例5.3] 写一程序,从键盘上输入一个年份year(4位十 进制数),判断其是否闰年。 算法设计要点:
1)闰年的条件是:能被 4整除、但不能被100整除,或者能被 400整除。 2)如果X能被Y整除,则余数为0,即如果X%Y的值等于 0,则表示X能被Y整除! 3)首先将是否闰年的标志leap预置为0(非闰年),这样仅当 year为闰年时将leap置为1即可。这种处理两种状态值的方法,对 优化算法和提高程序可读性非常有效。
(2)else子句(可选)是if语句的一部分,必须与if配对使用,不 能单独使用。
(3)当if和else下面的语句组,仅018/10/14
16
2.if语句的执行过程
(1)缺省else子句时(P96) 当“表达式”的值不等于0(即判定为“逻辑真”)时,则执行语 句组1,否则直接转向执行下一条。如图5-5(a)所示。
2018/10/14 18
参考程序如下: /*例代码文件名:L5_3.C。*/ /*功能:说明if语句的嵌套格式和用法。*/
利用逻辑运算能描述复杂条件的特点,可将上述程序优化如下: #include <stdio.h> #include <stdio.h> main() {int year,leap=0; /* leap=0:预置为非闰年*/ main() printf("Please input the year:"); {int year; scanf("%d",&year); ifprintf("Please (year % 4==0) input the year:"); { if (year % 100 != 0) scanf("%d",&year); leap=1; if } ((year%4==0 && year%100!=0)||(year%400==0)) if (year%400==0) printf("%d is a leap year.\n",year); leap=1; } ifelse (leap) printf("%d is a leap year.\n",year); else printf("%d printf("%d is not leap a year.\n",year); isanot leap year.\n",year); }
5.2.1 逻辑运算及其优先次序
1.逻辑运算符及其运算规则 (1)C语言提供三种逻辑运算符: && “且”) || ! 2018/10/14 逻辑与(相当于“同时”、
逻辑或(相当于“或者”) 逻辑非(相当于“否定”)
8
例如,下面的表达式都是逻辑表达式:
(x>=0) && (x<10) ,(x<1) || (x>5) ,! (x= =0), (year%4==0)&&(year%100!=0)||(year%400==0)
1)对于逻辑与运算,如果第一个操作数被判定 为“假”,系统不再判定或求解第二操作数。 2)对于逻辑或运算,如果第一个操作数被判定 为“真”,系统不再判定或求解第二操作数。
2018/10/14 13
5.3.1
if语句
5.3
if语句和条件运算符
程序运行情况如下: Please input three numbers:11,22,18↙ The three numbers are:11,22,18 max=22
程序运行情况如下: Please input three numbers: 22,18,11↙ Three numbers after sorted: 11,18,22
2018/10/14 15
1.if语句的一般格式
if(表达式) {语句组1;} [else {语句组2;} ]
(1)if语句中的“表达式”必须用“(”和“)”括起来。
[例5.1] 输入任意三个整数n1、n2、n3,求三个数中的最大值。 /*例代码文件名:L5_1.C。功能:说明if 语句的格式。*/
#include <stdio.h> main() {int n1,n2,n3,max; printf(“Please input three numbers:”); scanf(“%d,%d,%d”,&n1,&n2,&n3); if (n1>n2) max=n1; 这种优化形式的基本思想是: max=n1; if(n2>max) 首先取一个数预置为 max(最大 else 值),然后再用 max依次与其余 max=n2; 的数逐个比较 ,如果发现有比 if (n3>max) max 大的,就用它给 max 重新赋 max=n3; printf(“The three numbers are:\ 值,比较完所有的数后,max中 %d,%d,%d\n",n1,n2,n3); 的数就是最大值。这种方法,对 从3个或3个以上的数中找最大值 printf("max=%d\n",max); 的处理,非常有效。 }
例如,假设num=12,则: 0 !num的值 num>=1 && num<=31的值 1 num || num>31的值 1
2018/10/14
12
3.说明n1=1、n2=2、n3=3、n4=4、x=1、 例如,假设 y=1 则求解表达式“ (x=n1>n2)&&(y=n3>n4)”后, ( 1)逻辑运算符两侧的操作数,除可以是0 x =?,y=?,表达式的值=? 和非0的整数外,也可以是其它任何类型的数 据,如实型、字符型等。 0 1 0 (2)在计算逻辑表达式时,只有在必须执行 下一个表达式才能求解时,才求解该表达式 (即并不是所有的表达式都被求解)。即:
(2)运算规则 1)&&:当且仅当两个运算量的值都为“真”时,运算
结果为“真”,否则为“假”。 2) || :当且仅当两个运算量的值都为“假”时,运算结 果为“假”,否则为“真”。 3) ! :当运算量的值为“真”时,运算结果为“假”; 当运算量的值为“假”时,运算结果为“真”。
例如,假定x=5, 则(x>=0) && (x<10)的值为“真”, (x<-1) || (x>5)的值为“假”。
2018/10/14 14
[例5.2]输入任意三个数n1、n2、n3,按从小到大的顺序排序输出。 /*例代码文件名:L5_2.C。*/(P98)
#include <stdio.h> main() {int n1,n2,n3,temp; printf("Please input three numbers:"); scanf("%d,%d,%d",&n1,&n2,&n3); if (n1>n2) {temp=n1;n1=n2;n2=temp;} if (n2>n3) {temp=n2;n2=n3;n3=temp;} if (n1>n2) {temp=n1;n1=n2;n2=temp;} printf("Three numbers after sorted: %d,%d,%d\n",n1,n2,n3); }