用C++求一元二次方程式ax^2+bx+c=0的根,如果方程没有实根,则输出有关警告信息。
时间: 2023-06-20 08:10:03 浏览: 137
以下是用C++求解一元二次方程的代码:
```cpp
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double a, b, c, delta, x1, x2;
cout << "请输入一元二次方程的系数:a, b, c" << endl;
cin >> a >> b >> c;
delta = b * b - 4 * a * c;
if (delta < 0) {
cout << "该方程没有实根" << endl;
} else if (delta == 0) {
x1 = x2 = -b / (2 * a);
cout << "该方程有两个相等的实根:" << x1 << endl;
} else {
x1 = (-b + sqrt(delta)) / (2 * a);
x2 = (-b - sqrt(delta)) / (2 * a);
cout << "该方程有两个实根:" << x1 << "和" << x2 << endl;
}
return 0;
}
```
首先,我们定义了四个变量:a、b、c 和 delta。然后,我们通过 cin 语句从用户输入中获取这三个变量的值。接下来,我们计算 delta 的值,并使用 if-else 语句来判断 delta 的值,以确定方程是否有实根。
如果 delta 小于零,则方程没有实根,并输出警告信息;如果 delta 等于零,则方程有两个相等的实根,并输出这个根的值;如果 delta 大于零,则方程有两个实根,并输出这两个根的值。
注意,当 delta 小于零时,我们只输出了警告信息,而没有继续计算方程的根。这是因为在复数域内,方程仍然有两个根,但这超出了本题的要求。
阅读全文