- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include<stdio.h> main( ) { 用C语言描述: int score; printf("Please input a student's score:"); scanf("%d",&score); 1)a小于b或小于c 4)a是非正整数 if(score>=60) 2) a和b都大于c 5)a是奇数 选择 printf("The student's score has passed.\n"); 3)a和b中至少有一个大于c 6)a不能被b整除 结构 else printf("The student's score has n't passed.\n"); }
第四章 选择结构程序设计
【例4.5】从键盘上输入3个实数a,b,c,求出 其中的最小值并输出其值。 程序如下:
#include <stdio.h> main( ) { float a,b,c,min; printf("Please input a,b,c:"); scanf("%f%f%f",&a,&b,&c); if(a<b) { if(a<c) min=a; else min=c; } else { if(b<c) min=b; else min=c; } printf("min=%f\n",min); }
第四章 选择结构程序设计
问题:
1、从键盘输入一个数,如该数为正,打印,否则 不打印; 2、将考试成绩不及格的学生名单打印出来; 3、解一元二次方程,求出相应的实根或复根。 对于上述或类似问题,需要进行某种判断,并 根据不同情况进行不同的处理,怎样进行程序设计? 引入新的程序结构选择结构来解决。 通常有两种形式可进行分支结构的程序设计: if结构、多分支选择结构(switch语句)
格式一
第四章 选择结构程序设计
求a和b两数中较大的一个。
Y max=a
a>b? N max=b
main( ) { int a,b,max; scanf("%d, %d",&a, &b); if ( a >b ) max=a; else max=b; printf("The max of a and b : %d\n", max); }
第四章 选择结构程序设计
程序如下
#include <stdio.h> main() { int f; printf("Please input a student's score:"); scanf("%d",&f); if(f>=0&&f<60) printf("%d------------>E\n",f); else if(f<70) printf("%d------------>D\n",f); else if(f<80) printf("%d------------>C\n",f); else if(f<90) printf("%d------------>B\n",f); else if(f<=100) printf("%d------------>A\n",f); else printf("Your input are error!\n"); }
第四章 选择结构程序设计
有关if语句使用的几点说明:
1.if语句中的条件表达式必须用()括起来,并且 在括号外部不能加分号; 2.if或else子句后面的执行语句均有分号; 3.else是if语句的子句,必须与if搭配使用,不可 以单独使用; 4.当if或else子句后是多个执行语句构成的语句组 时(复合语句),必须用{ }括起来,否则各子句 均只管到其后第一个分号处; 5.if或else子句后只接单个分号时,应把之作为空 语句处理。
第四章 选择结构程序设计
if-else-if形式流程图
表达式1 Y N
表达式2
Y
N
„ 表达式n-1
N
语句1
语句2
„
Y 语句n-1 语句n
【例4.4】编写程序,要求输入一个学生的考试 成绩,输出其分数和对应的等级。 问题分析:学生成绩共分5个等级:小于60分为 “E”;60~70分为“D”;70~80分为“C”;80~90 分为“B”;90分以上为“A”。
第四章 选择结构程序设计
嵌套if语句的流程图
Y Y N 表达式2 语句2
表达式1 Y
N N 表达式3 语句4
语句1
语句3
功能: 先判断表达式1的值,若表达式1为非0,再判断表达 式2的值,若表达式2为非0,则执行语句1,否则执 行语句2。若表达式1的值为0,再判断表达式3的值, 若表达式3为非0,则执行语句3,否则执行语句4。
第四章 选择结构程序设计
在if语句的“语句1”或“语句2”中又包含着if语句
表 达 式
表 达 式
1
main( ) { int x, y; 注 printf ("Enter integer X and Y:"); 意 scanf ("%d%d", &x, &y); if ( x != y ) if ( x > y ) printf ("X>Y\n"); if与else之间的匹 else printf ("X<Y\n"); 配,else总是与 else printf ("X==Y\n"); 同它最近的 if相 }
x=(a>b)?a:b 当 a=9,b=5时,x=9
第四章 选择结构程序设计
3 条件运算符的优先级:高于赋值和逗号,低于其他
4 结合性:从右向左 5 数据类型可以不同:
z=(a>b)?a:(a>d)?c:d
x>y?’a’:’b’
a, b, c A) 9, 9, 9 B) 8, 8, 10 C) 8,10, 9 D) 1,11,10
第四章 选择结构程序设计
第四节
条件运算符和条件表达式
条件运算符为(? :)是C语言中唯一的一个三目 运算符(有三个参与运算的操作数)。
1. 格式 (表达式1)?(表达式2):(表达式3)
2 功能: 判断表达式1的值,若为非0,则表达式2的 值为条件表达式的值,否则,表达式3的值为 条件表达式的值。
第四章 选择结构程序设计
流程图:
开始
定义Y, leap 输入Y
Y
Y%4==0&&Y%100!=0||Y%400==0
N
leap=1
Y
leap=0
leap==1
N
输出Y为闰年
输出Y非闰年
结束
第四章 选择结构程序设计
程序如下
#include <stdio.h> main() { int Y,leap; printf("Please insert the year number:"); scanf("%d",&Y); if((Y%4==0)&&(Y%100!=0)||(Y%400==0)) leap=1; else leap=0; if(leap==1) printf("%d is a leap year.\n",Y); else printf("%d is not a leap year.\n",Y); }
匹配。
第四章 选择结构程序设计
main( ) { int a=5,b=1; if(a++>5) if(a++>5) b=2; if else if if(a++>5) b=3; else b=4; printf(“%d”,b); }
A) 1 B) 2 C) 3 D) 4
当: a=1,b=3,c=5,d=4 if(a<b) if if(c<d) x =1; else if if(a<c) if(b<d) x=2; if else x=3; else x=6; else x=7; A) 1 C) 3 B) 2 D) 6
第四章 选择结构程序设计
第四章
选择结构程序设计
第一节 第二节
选择结构程序设计简介 if语句
第三节 嵌套if语句 第四节 条件运算符和条件表达式 第五节 switch语句 第六节 选择结构程序设计举例
第四章 选择结构程序设计
第一节
选择结构程序设计简介
1、选择结构(分支结构)
是根据实际情况对给定的条件进行判断,依据 条件成立与否执行不同操作语句的一种程序设计 方法。是三种结构化程序设计方法之一。
流程图: 问题分析:
本例中学生成绩 从键盘读入。判断学 生成绩是否合格实际 就是判断学生成绩是 否大于或等于整数60。 Y 大于或等于整数60, 则该学生成绩为合格, 输出合格 否则为不合格。
开始 定义score 输入score score>=60
N
输出不合格
结束
第四章 选择结构程序设计
程序如下:
第四章 选择结构程序设计
2、 if-else形式
流程图:
语法格式: if (表达式) 语句1; else 语句2;
功能: 先判断括号内表达式 的值,若为非0,执行语 句1,否则,执行语句2。
Y
条件 语句1
N
语句2
第四章 选择结构程序设计