C语言写解一元二次方程程序心得
2024-08-29 09:01:16
前言:在网上看到不少解一元二次方程的小程序,在使用时总得出一大堆小数,感觉很不爽,遂自己重新写了一遍。
首先,先回忆一下一元二次方程的求根公式:
- 分别读取二次项、一次项和常数项系数并且求出delta
- 无解情况
此时同时输出delta的值,小于0,无解。
2.只有一个根的情况
当delta等于0,只有一个实数根,没什么好讲。
3.两个不相等实根的情况
重点就是这个部分。
为了避免一大堆小数的问题,分开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)不是整数时
对,保留根号!
后记:写这一段小程序最初是为繁多的坑爹的解方程数学题所恼,想快点完成作业~~于是在那个月黑风高的晚上写完作业后顺便把这篇文章写了。
最新文章
- SQL 计算两个地理坐标相差的距离的函数
- Uva11538 排列组合水题
- android: SQLite删除数据
- ECSHOP不同商品分类调用不同模板
- JS调试必备的5个debug技巧
- asp.net mvc开发的社区产品相关开发文档分享
- 关于UITableViewCell的循环利用--面向初学者
- iPhone丢失后通过iccid找回流程
- 利用PS滤镜及图层叠加制作水墨荷花
- js数组、对象、正则
- html5 01 随记
- 20145237 《Java程序设计》第2周学习总结
- 【心得】-NO.114.面试.1 -【To HR And Interviewer】
- python ";import this";
- margin auto 实现居中,与text-align:center的区别
- vue系列之flex经典案例
- Mybaits代码生成使用
- Db2与Oracle的区别
- Revit Family API 添加材质参数设置可见性
- js 数组的深度递归搜索