收藏 分享(赏)

北京航空航天大学c语言e2第五讲 第一阶段综合训练【课件】.ppt

上传人:无敌 文档编号:933504 上传时间:2018-05-03 格式:PPT 页数:18 大小:618.51KB
下载 相关 举报
北京航空航天大学c语言e2第五讲 第一阶段综合训练【课件】.ppt_第1页
第1页 / 共18页
北京航空航天大学c语言e2第五讲 第一阶段综合训练【课件】.ppt_第2页
第2页 / 共18页
北京航空航天大学c语言e2第五讲 第一阶段综合训练【课件】.ppt_第3页
第3页 / 共18页
北京航空航天大学c语言e2第五讲 第一阶段综合训练【课件】.ppt_第4页
第4页 / 共18页
北京航空航天大学c语言e2第五讲 第一阶段综合训练【课件】.ppt_第5页
第5页 / 共18页
点击查看更多>>
资源描述

1、switch语句,处理多分支选择问题,3种情况:1、在switch语句的每个语句段中都使用break语句switch(表达式) case 常量表达式1:语句段1 break; case 常量表达式2:语句段2 break; . case 常量表达式n:语句段n break; default : 语句段n+1 break;,分段计价问题:,switch (choice) case 1: price=2.0; break; case 2: price=2.5; break; case 3: price=3.0; break; case 4: price=3.5; break; default: p

2、rice=0.0; break;,if (choice=1) price=2.0;else if (choice=2) price=2.5;else if (choice=3) price=3.0;else if (choice=4) price=3.5;else price=0;,用else-if表示:,2、在switch中不使用break,switch (表达式) case 常量表达式1:语句段1 case 常量表达式2:语句段2 . case 常量表达式n:语句段n default : 语句段n+1,switch (choice) case 1: price=2.0; case 2: p

3、rice=2.5; case 3: price=3.0; case 4: price=3.5; default: price=0.0;,price=?,3、在switch的某些语句段中使用break,例 输入10个字符,分别统计出其中空格或回车、数字和其他字符的个数。,分析: 设统计变量 blank , digital , other 情况 一: , n blank+; 情况二: 0,1,2,3,4,5,6,7,8,9 digital+; 其它: other +;,int main(void) /begin of main() int blank, digit, i, other; char

4、ch; blank = digit = other = 0; printf(Enter 10 characters: ); for (i = 1; i = 10; i+) /通常用i,j,k作循环控制变量 /begin of for,ch = getchar(); switch (ch) case : case n: blank +; break; case 0 : case 1 : case 2 : case 3 : case 4 :case 5 : case 6 : case 7 : case 8 : case 9 : digit +; break; default: other +; ,

5、 /end of for printf(blank=%d, digit=%d, other=%dn, blank, digit, other); return 0; / end of main(),Enter 10 characters: Reold 123?blank=1, digit=3, other=6,分析: 行的控制i: 18; 列的控制: 1) *的个数与当前行的关系: j=2*i-1; 2)*前面的空格k与行的关系: 开始时,第一行有7个空格, 每多一行,少一个空格,k=8-i。,例:打印金字塔图形。,15列,8行,for (i=1;i9;i+) for (k=1;k=8-i;k

6、+) 输出空格; for (j=1;j=(2*i-1);j+) 输出*; ,*,void main() int i=1,j,k; for (i=1;i9;i+) /8层金字塔 for (k=1;k=8-i;k+) printf( ); /输出空格 for (j=1;j=2*i-1;j+) printf(* ); /输出* printf(n ); ,for (i=1;i=3;i+) for (j=1;j=4;j+) for (k=1;k=5;k+) ,理解三重循环,第一层:求和, i循环 x1+x2+xi+xn,第二层:求积,j循环 y1*y2*y3*yi,第三层:求阶乘,k循环 1*2*3*j

7、,思考:求1! + 1!*2! + + 1!*2!*100!,sum=0for (i=1;i=n;i+) itemj=1; for (j=1;j=i;j+) itemk=1; for (k=1;k1e-5,更新x, 即x=x1, 循环执行 2) 3),否则执行4); 4)输出x。,习题讲解,C程序设计 第六讲 数组,#include math.hvoid main()doube a,x1,x2;scanf(%lf,快速代码整理方法:选中目标,再按Alt+F8,C程序设计 第六讲 数组,练习6.13 用二分法求下面方程在(-10,10)之间的根。2x3-4x2+3x-6=0,解题分析:首先要求理

8、解什么叫二分法?,习题讲解,x,f(x),x,x=(x1+x2)/2,C程序设计 第六讲 数组,解题步骤:1, 已知 -10x1, 10x2 ,x1,x2有根,2,二分法:x=(x1+x2)/2, 将求解域分为两个,x1,x和x,x23,关键点:寻找根在x1,x还是在x,x2区间? 如果f(x)*f(x1)0 说明x1,x f()的值符号相同,即不 过0, 无根,并且x,x2 有根; 如果f(x)*f(x1)0说明 x1,x 有根;4,调整x1,x2反复运算,直到fabs(f(x)0) x1=x; else x2=x; while (fabs(y)1.0E-6);,printf(The roo

9、t is %5.2fn,x);,float x,y,x1,x2,y1;,课堂练习1, 打印乘法九九表; 课堂练习2, 古典算术问题:搬砖头。某地需要搬运砖块,已知男人一人搬3块,女人一人搬2块,小孩两人搬一块。问用45人正好搬45块砖,有多少种搬法?,要求:清晰写出思路或 关键程序段。,for (men = 0; men = 45; men+) for (women = 0; women = 45; women+) for (child = 0; child = 45; child+) if (men+women+child=45) ,for (men = 0; men = 15; men+)

10、for (women = 0; women = 22; women+) child = 45 women men; if (men * 3 + women * 2 + child * 0.5 = 45) printf(men=%4dwomen=%4dchild=%4dn,men, women, child);,方法一:,方法二:,目的:熟练掌握 for 、 while 、 do-while语句的使用和 break,continue的使用。内容: 基本:Page 129: 6.5, 6.7, 6.8, 6.14提高: 1, 要将一张 100 元的大钞票,换成等值的 10元、 5 元、 2 元、1 元一张的小钞票。要求每次换成 40 张小钞票,每种至少一种。编程输出所有可能的换法。 2, 阶段总结报告: 归纳所学的内容,总结习题完成情况 ,讲述学习中遇到的难点及今后的教与学中应注意的问题。要求:与第三次上机相同.,第三次 上机实验,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报