博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言写解一元二次方程程序心得
阅读量:7048 次
发布时间:2019-06-28

本文共 676 字,大约阅读时间需要 2 分钟。

前言:在网上看到不少解一元二次方程的小程序,在使用时总得出一大堆小数,感觉很不爽,遂自己重新写了一遍。

首先,先回忆一下一元二次方程的求根公式:

  1. 分别读取二次项、一次项和常数项系数并且求出delta

 

  1. 无解情况

 

此时同时输出delta的值,小于0,无解。

 2.只有一个根的情况

 

当delta等于0,只有一个实数根,没什么好讲。

 3.两个不相等实根的情况

重点就是这个部分。

  1. 为了避免一大堆小数的问题,分开sqrt(delta)是整数和非整数来。(如果是整数,则直接运算,如果不是整数,则保留根号)

    (1)sqrt(delta)是整数时

现在涉及一个问题就是如何判断整数

此处为了避免互相干扰,用了两个变量,sqr用于判断是否为整数,如果是整数,则用sqr1计算

如何判断是否为整数呢?这里可以利用int形和double形的性质。采用判断(int)sqr和 (int)(sqr + 0.9999999)的大小来判断sqr是不是整数。[double形一般精确到小数点后6 位,所以这里用了7个9]。然后强制转换成int型,如果为整数,(int)(sqr + 0.9999999)不会进位,x=y。不是整数,反之。

然后如果为整数,先计算sqrt(delta)后代入计算。

(2)sqrt(delta)不是整数时

对,保留根号!

 

后记:写这一段小程序最初是为繁多的坑爹的解方程数学题所恼,想快点完成作业~~于是在那个月黑风高的晚上写完作业后顺便把这篇文章写了。

转载于:https://www.cnblogs.com/joyceX/p/4004899.html

你可能感兴趣的文章
图像处理之小波变换
查看>>
基于Zlib算法的流压缩、字符串压缩源码
查看>>
问题-[DelphiXE2]提示第三控件不存在
查看>>
三层架构(一个)——什么是三层架构?
查看>>
Xamarin.Android开发实践(十二)
查看>>
ORA-12571: TNS:packet writer failure
查看>>
Android:WebView(慕课网)
查看>>
JS中的数学计算<之简单实例讲解>
查看>>
Android开发之ExpandableListView扩展(BaseExpandableListAdapter的使用)(完整版)
查看>>
深入理解JS的delete
查看>>
BZOJ2085 : [Poi2010]Hamsters
查看>>
proc文件系统、sysfs文件系统、kobject操作
查看>>
发送验证码
查看>>
多线程开发之三 GCD
查看>>
在scrollView中使用pageControl
查看>>
MongoDB Linux环境安装及配置[转]
查看>>
错误 1 未知的服务器标记“asp:ScriptManager”。
查看>>
Spark里边:Worker源代码分析和架构
查看>>
WebForm和MVC中都可以使用的路由
查看>>
解决 - java.lang.OutOfMemoryError: unable to create new native thread
查看>>