前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C语言解方程的根和判断是否是闰年

C语言解方程的根和判断是否是闰年

原创
作者头像
诸葛青云
修改2020-03-27 10:24:46
1.3K0
修改2020-03-27 10:24:46
举报

没有结构性的摧毁,不会坠入万丈深渊。

没有结构重塑,不能帮你跃出低谷。

方程求根

题目:解 ax^2+bx+c=0 方程的解

解题思路:

  ①a=0,不是二次方程

②b^2-4ac=0,有两个相等的实根

③b^2-4ac>0,有两个不等的实根

④b^2-4ac<0,有两个共轭复根。应当以p+iq和p-iq 的形式输出复根。其中p=-b/2a,q=(根号下b^2-4ac)/2a

N-S流程图:

代码:

运行结果:

1.输入1,2,1,得到两个相等的实根

2.输入1,2,2,得到两个共轭复根

3.输入2,6,1,得到两个不等的实根

if(fabs(a)<=1e-6)

判断a的值是否小于0.000001,浮点数的小数只能精确到小数点的后六位,即判断a是否等于0。

思考:

if(fabs(a)<=1e-6),可以用if(a == 0)替换吗?

程序分析:

程序中用disc代表b^2-4ac,先计算disc的值,以减少以后的重复计算。对于判断b^2-4ac是否等于0时,要注意:由于disc(即b^2-4ac)是实数,而实数在计算和存储时会有一些微小的误差,因此不能直接进行如下判断;

if(disc ==0)

因为这样可能会出现本来是零的量,由于上述误差而被判别为不等于零而导致结构错误。

所以采取的办法是判别disc的绝对值(fabs(disc))是否小于一个很小的数,如果小于此数,就认为disc等于0。

是否是闰年

题目:判断某一年是否是润年

leap是一个“标志变量”,用来表示相应的年份是否是润年

如果是闰年,就使leap等于1,如果不是闰年,就使leap等于0。

最后检查leap的值,输出信息。 

N-S流程图:

代码1:

代码2:

代码3:

推荐使用代码3,逻辑表达式使代码简洁明了!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档