第5章分支解析.ppt

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章分支解析

【例5.9】在case后面嵌套switch语句的程序。 void main( ) { int x=1,y=0,a=0,b=0; switch(x) { case 1: switch(y) { case 0: a++;break; case 1:b++;break; } case 2: a++;b++;break; case 3: a++;b++; } printf(“a=%d,b=%d\n”,a,b);} 如果在此处 加一个break结果如何? break; 运行结果 a=2,b=1 运行结果 a=1,b=0 【例 5.10】 使用switch语句编写例5.5程序,将数字显示的成绩转化为评价。 #include stdio.h void main( ) { int score,grade; printf(请输入分数(0~100): ); scanf(%d, score); grade = score/10; /*将成绩整除10,转化成switch语句中的case标号*/ switch (grade) { case 10: case 9: printf(优秀 \n); break; case 8: printf(良好\n); break; case 7: printf(合格\n); break; case 6: printf(及格\n); break; case 5: case 4: case 3: case 2: case 1: case 0: printf(不及格\n); break; default: printf(分数超出范围!\n);} } 【例 5.11 】 输入三个整数,输出最大数和最小数。 #include stdio.h void main() { int a,b,c,max,min; printf(请输入a,b,c的值:\n); scanf(%d,%d,%d,a,b,c); if(ab) {max=a;min=b;} else {max=b;min=a;} if(maxc) max=c; else if(minc) min=c; printf(max=%d min=%d,max,min); } 5.3 选择结构程序设计举例 【例5.12】 求方程的解: 算法:有以下几种可能性: ① a = 0,不是二次方程。 ② = 0,有两个相等实根。 ③ 0,有两个不等实根。 ④ 0, 有两个共轭复根。 N-S流程图: #include math.h void main() { float a,b,c,d,x1,x2,p,q; ?scanf(%f,%f,%f,a,b,c);/* 方程系数 */ ?printf(The equation ); ?if (fabs(a) = 1E-6) /* 判 a = 0 */ { printf(is not quadratic\n); exit(0); } else ?? d = b*b - 4*a*c; /* △ */ if (fabs(d) = 1E-6) /* △=0 */ ???  printf(has two equal root: %8.4f,-b/(2*a)); else if (d 1E-6) /* △0 */ ??{ x1 = (-b + sqrt(d))/(2*a); ??? x2 = (-b - sqrt(d))/(2*a); ??? printf(has distinct real roots:%8.4f and %8.4f\n,x1,x2);} else /* △ 0 */ ??{ p = -b/(2*a); ???  q = sqrt(-d)/(2*a); ???? printf(has complex roots:\n); ???? printf(%8.4f+%8.4fi\n,p,q); ???? printf(%8.4f-%8.4fi\n,p,q);??} } 注意: 1、一个“好”的程序,必须考虑到各种可能的情况,均能作出正确处理。 2、判别一个实数是否为零(如本例中disc),正确的方法是判其绝对值小于一个很小的常数,如: if (fabs(disc) = 1E-6) .... 不能使用下述方法: if (disc == 0.0) ....

文档评论(0)

2299972 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档