求解一元二次方程
2025年2月6日小于 1 分钟
#include <bits/stdc++.h>
using namespace std;
int main()
{
double a, b, c;
cin >> a >> b >> c;
// 判断是否有实根
if (b * b - 4 * a * c < 0)
{
// 没有实根
cout << "No answer!";
}
else
{
// 有实根
double x1 = (-b + sqrt(b * b - 4 * a * c)) / (2 * a);
double x2 = (-b - sqrt(b * b - 4 * a * c)) / (2 * a);
if (b * b - 4 * a * c == 0)
{
// 两个实根相等
cout << fixed << setprecision(5) << "x1=x2=" << x1;
}
else
{
// 两个实根不相等
if (x1 > x2)
{
// 当 x1 > x2 时交换两个变量,来保证 x1 较小
double temp = x1;
x1 = x2;
x2 = temp;
// 也可以使用自带的 swap(x1, x2);
}
cout << fixed << setprecision(5)
<< "x1=" << x1 << ";x2=" << x2;
}
}
return 0;
}