- 1、本文档共42页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
wxm第5章 选择结构
综例2: eg5.5 写程序,判断某一年是否闰年。 (指导书P34) 阳历规定:闰年的条件是符合下面二者之一 : 1. 能被4整除,但不能被100整除; 例:公元2200年不是闰年。 2. 能被400整除。例:公元100年、200年都不是闰年。 算法一(推荐): 直接用逻辑表达式来表示闰年的条件 if((year%4==0year%100!=0) ||year%400==0) printf(“是闰年 ); else printf(“不是闰年 ); C二级 常见问题 建议掌握 算法二:多重分支选择结构(不推荐) if ( year%4= =0 ) if ( year%100= =0) if ( year%400 = =0) leap=1; else leap=0; else leap=1; else leap=0; if (leap) printf(“是闰年 ); else printf(“ 不是闰年 ); 能被4整除? Y N 能被100整除? Y Y Y N N N leap=0 leap=1 能被400整除? leap=1 leap=0 闰年标志leap=1? 输出“闰年” 输出“非闰年” 综例3: eg5-6: 求 方程的解 分析:有以下几种可能: 1. ,不是二次方程。否则 2. ,有两个相等实根。 3. ,有两个不等实根。 4. ,有两个共轭复根。 要想成为一个用计算机解决问题的高手,前提是掌握广泛的知识。否则即使熟读C语法知识,也只能是“纸上谈兵”。 计算复数的实部和虚部 实部: 虚部: Y Y Y N N N 输出非二次方程 输出两 个相等 的实根: 输出两个实根: x1,x2 输出两个复根: p+qi, p-qi #include math.h #include stdio.h void main( ) {float a,b,c, disc, x1, x2, p, q; scanf(%f%f%f,a,b,c); disc=b*b-4*a*c; if (a==0) printf(非二次方程\n); else if (fabs(disc)=1e-6 ) //如果disc==0 printf(两个相等实根是%8.4f\n,-b/(2*a)); else if (disc1e-6 ) //如果disc0 { x1=(-b+sqrt(disc))/(2*a); x2=(-b-sqrt(disc))/(2*a); printf(“两个不等实根%f 、%f\n”,x1,x2); } 常用算法 建议掌握 else //disc0时 { p=-b/(2*a); //实部 q=sqrt(-disc)/(2*a);//虚部 printf(“两个不等复根之一是%f+%f i \n, p, q); printf(“两个不等复根之二是%f-%f i \n, p, q); } } 编程经验:(抄笔记) 浮点计算后有误差,所以 if(result==0) 应写为 if(fabs(result)=1e-6) if(result0) 应写为 if(result1e-6) 综例4: 给百分制的成绩,要求输出成绩等级ABCDF。(90分以上为‘A’ ,80-89分为‘B’,70-79分为‘C’,60-69分为‘D’,60分以下为‘F’) 根据grade确定分数段x x =‘A’ x =‘B’ x =‘C’ x=‘F’ x =‘D’ 0 8 7 6 5 4 3 2 1 10 9 输入学生成绩grade grade0 ||grade100 Y N 输出成绩等级x 输入数据有误,结束 提示:这是一个多分支选择问题,优先考虑能否用switch语句。 关键是怎么使各个分支对应于不同整数,以便能用switc
文档评论(0)