解题思路:

1、使用求根公式,并对公式进行化简

2、分别讨论b²-4ac大于、小于、等于0的情况

3、当b²-4ac小于0时,由于无实数解,需要进行复数格式化(考虑用format进行输出)

注意事项:

需要注意输出格式,保留三位小数,中途不能取舍,如果中途取舍会对结果造成一定误差,只在最终结果进行取舍。

参考代码:

import math
while True:
    try:
        a, b, c = map(int, input().strip().split())
        dert = (b ** 2) - (4 * a * c)
        if dert > 0:
            x1 = math.sqrt(dert) / (2 * a)
            x2 = math.sqrt(dert) / (2 * a)
            print("x1={:.3f} x2={:.3f}".format((0 - b)+ x1, (0 - b)-x2))
        if dert == 0:
            x1 = math.sqrt(dert) / (2 * a)
            print("x1={:.3f} x2={:.3f}".format((0 - b)+ x1, (0 - b)-x1))
        if dert < 0:
            x1 = math.sqrt(0 - (((b ** 2) - (4 * a * c)) / (4 * a * a)))
            x2 = math.sqrt(0 - (((b ** 2) - (4 * a * c)) / (4 * a * a)))
            print("x1={:.3f}+{:.3f}i x2={:.3f}-{:.3f}i".format((0 - (b / (2 * a))), x1, (0 - (b / (2 * a))), x2))
    except:
        break


点赞(0)
 

0.0分

20 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 2 条评论

NianHua 9月前 回复TA
@debuff +1,怎么评的优质啊
debuff 2年前 回复TA
看了半天,一直没想明白那个输出里面的b为什么不用除以2a,去看了题目检测才发现,检测的两个都是第三种情况,所以这代码根本就是有错的,还优质,白花时间看了