C语言程序设计案例教程课件-4第四章-选择结构程序设计.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《C语言程序设计案例教程课件-4第四章-选择结构程序设计.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 案例 教程 课件 第四 选择 结构 程序设计
- 资源描述:
-
1、C C语言程序设计语言程序设计、结构化程序设计的有哪几种基本结构?结构化程序设计的有哪几种基本结构?、算法的描述方法都有哪几种?、算法的描述方法都有哪几种?、C C语句的分类有哪些?语句的分类有哪些?课程回顾课程回顾4.1有节约要求的水费问题4.2 if语句4.3switch语句学习目标熟练掌握if语句的各种用法掌握switch语句的用法能够编写简单的选择结构程序选择结构选择结构单分支单分支双分支双分支if (if (表达式表达式)语句语句多分支多分支if (if (表达式表达式)语句语句else else 语句语句if (if (表达式表达式1)1)语句语句else if (else if
2、(表达式表达式)语句语句else else 语句语句n nif if 语句的嵌套语句的嵌套switchswitch语句语句4.14.1 有节约要求的水费问题有节约要求的水费问题 任务描述任务描述 为提倡节约用水,按照每月每户为提倡节约用水,按照每月每户每人每人3 3吨水进行定量,吨水进行定量,标准标准以内的用以内的用水量水费为水量水费为每吨每吨1.511.51元元,超额超额的部分的部分2 2倍付费倍付费。需要我们编写程序来解决每。需要我们编写程序来解决每户每个月要交的水费问题。户每个月要交的水费问题。问题分析:问题分析:1 1、每户的人口数、每户的人口数2 2、每个、每个月所用的水量月所用的水
3、量3 3、判断是否超出了定、判断是否超出了定量标准量标准4 4、进行水费的计算。、进行水费的计算。数据需求数据需求 1 1、程序常量、程序常量 DOSAGE 3 DOSAGE 3 CRITERION 1.51 CRITERION 1.51 2 2、输入数据、输入数据 int person /int person /*存放人口数存放人口数*/float previous,behind/float previous,behind/*存放上个月水表存放上个月水表 读数,这个月水表读数读数,这个月水表读数*/3 3、输出数据、输出数据 int ration /int ration /*每户标准用水量每
4、户标准用水量*/float water,charge/float water,charge/*用水总量,总水费用水总量,总水费*/4.14.1 有节约要求的水费问题有节约要求的水费问题 算法算法1 1获取数据:读入水表上个月和这个月的读数,读入获取数据:读入水表上个月和这个月的读数,读入人口数。人口数。2 2计算用水量:计算用水量:water=behind-previouswater=behind-previous。3 3计算用水标准量:计算用水标准量:ration=personration=person*DOSAGEDOSAGE4 4if if没有超出标准用水量没有超出标准用水量 charg
5、e=watercharge=water*CRITERIONCRITERION else else charge=ration charge=ration*CRITERION+(water-ration)CRITERION+(water-ration)*2 2*CRITERIONCRITERION5 5显示水费总数。显示水费总数。实践4.14.1 有节约要求的水费问题有节约要求的水费问题 流程图流程图 4.14.1 有节约要求的水费问题有节约要求的水费问题 功能实现功能实现#include#include#define DOSAGE 3#define DOSAGE 3#define CRITER
6、ION 1.51#define CRITERION 1.51main()main()int person,ration;int person,ration;float previous,behind,water,charge;float previous,behind,water,charge;printf(printf(请输入人口数、上月水表读数、本月水表读数:请输入人口数、上月水表读数、本月水表读数:););scanf(%d%f%f,&person,&previous,&behind);scanf(%d%f%f,&person,&previous,&behind);ration=perso
7、n ration=person*DOSAGE;DOSAGE;water=behind-previous;water=behind-previous;if(water=ration)/if(water=ration)/*条件判断,分支选择条件判断,分支选择 */charge=water charge=water*CRITERION;CRITERION;else else charge=ration charge=ration*CRITERION+(water-ration)CRITERION+(water-ration)*2 2*CRITERION;CRITERION;printf(n prin
8、tf(n用户水费是:用户水费是:%.2fn,charge);%.2fn,charge);4.1 4.1 有节约要求的水费问题有节约要求的水费问题单分支if语句 该语句的一般形式如下:if(表达式)语句;功能:如果表达式的值为真,则执行其后面的语句,否则不执行该语句。12#include#include int int main()main()float score;float score;scanf(scanf(%f%f,&score);&score);if(score=60)if(score=60)printf(printf(通过考试!通过考试!););return 0 return 0;8
9、9通过考试!通过考试!思考?思考?从键盘输入一个月考成绩,如果输入成从键盘输入一个月考成绩,如果输入成绩大于等于绩大于等于6060,在屏幕上输出通过考试!,在屏幕上输出通过考试!思考?在键盘上输入两个数,输出其中较大的那个数?#include#include int int main()main()float float a,b,maxa,b,max;scanf(scanf(%f,%f,f,%f,&a,&ba,&b););max=a;max=a;if(if(b b maxmax)max=b;max=b;printf(printf(max is%fnmax is%fn,max,max););re
10、turn 0 return 0;双分支if语句这是if语句比较完整的形式,包含一条if子句和一条else子句。该语句的一般形式如下:if(表达式)语句1;else 语句2;功能:如果表达式的值为真,则执行语句1,否则执行语句2。#include#include int int main()main()float score;float score;scanf(scanf(%f%f,&score);&score);if(score=60)if(score=60)printf(printf(通过考试通过考试!););else else printf(printf(没有通过考试没有通过考试!););
11、return 0 return 0;思考?思考?从键盘输入一个月考成绩,如果输入成绩大于等于从键盘输入一个月考成绩,如果输入成绩大于等于6060,在屏幕上输出通过考试!否则输出没有通过考试!在屏幕上输出通过考试!否则输出没有通过考试!void main()float a,b,t;scanf(%f,%f,&a,&b);if(ab)t=a;a=b;b=t;printf(%5.2f,%5.2f,a,b);思考?利用分双支结构,在键盘上输入两个数,按数据大小顺序输出?思考?输入3个数a,b,c,要求按由小到大的顺序输出?#include#include void main()void main()fl
12、oat a,b,c,t;float a,b,c,t;scanf(%f,%f,%f,&a,&b,&c);scanf(%f,%f,%f,&a,&b,&c);if(ab)if(ab)t=a;a=b;a=t;/t=a;a=b;a=t;/*实现实现a a和和b b的互换的互换*/if(ac)if(ac)t=a;a=c;c=t;/t=a;a=c;c=t;/*实现实现a a和和c c的互换的互换*/if(bc)if(bc)t=b;b=c;c=t;/t=b;b=c;c=t;/*实现实现b b和和c c的互换的互换*/printf(%5.2f,%5.2f,%5.2f,a,b,c);printf(%5.2f,%5
13、.2f,%5.2f,a,b,c);#include#include int int main()main()float a,b,c,float a,b,c,areaarea,s;,s;scanf(scanf(“%f,%f,%f%f,%f,%f”,&a,&b,&c);,&a,&b,&c);if(a+bc)&(a+cb)&(b+ca)if(a+bc)&(a+cb)&(b+ca)s s=(a+b+c)/2;=(a+b+c)/2;areaarea=sqrt(=sqrt(s s*(s s-a)-a)*(s s-b)-b)*(s s-c);-c);printf(printf(“area“area=%7.2
14、fn=%7.2fn”,areaarea););else else printf(printf(“Not a triangle!nNot a triangle!n”););reutrn 0;reutrn 0;【例】输入三角形的三边,求三例】输入三角形的三边,求三角形的面积。角形的面积。输入输入a,b,ca,b,c是三角形是三角形吗?吗?s s (a+b+c)/2(a+b+c)/2areaareasqrt(sqrt(s s*(s s-a)a)*(s s-b)-b)*(s s-c)-c)输出输出areaarea输出输出“非非三角形!三角形!”3,4,53,4,5 areaarea=6.00=6.00
15、3,4,83,4,8 Not a triangle!Not a triangle!多分支if语句该语句的一般形式如下:if(表达式1)语句1else if(表达式2)语句2.else if(表达式n)语句nelse 语句n+1 功能:依次判断表达式的值,当出现某个表达式的值为真时,则执行其对应的语句,然后跳转到整个if语句之后继续执行程序;如果所有的表达式均为假,则执行else后的语句n+1。多分支多分支if if语句语句#include void main()float number,cost,result;printf(“请输入消费:);scanf(%f,&number);商场打折商场打折
16、:花费超过花费超过500500元打元打8585折,花费超过折,花费超过300300元元打打9 9折,花费超过折,花费超过100100元,打元,打99.2599.25折,花费超过折,花费超过5050元元打打95,95,请输入商场消费,输出实际消费。请输入商场消费,输出实际消费。if(number500)c7st=0.15;if(number500)c7st=0.15;else if(number300)cost=0.10;else if(number300)cost=0.10;else if(number100)cost=0.075;else if(number100)cost=0.075;el
17、se if(number50)cost=0.05;else if(number50)cost=0.05;else cost=0;else cost=0;result=number-number result=number-number*cost;cost;printf(“printf(“实际消费:实际消费:%fn”,result);%fn”,result);#include int main()float score;char grade;printf(Please input the score:);scanf(%f,&score);if(score=90&score=80&score=70
展开阅读全文