c++ 实例 - 求一元二次方程的根
二次方程 ax2+bx+c = 0 (其中a≠0),a 是二次项系数,bx 叫作一次项,b是一次项系数;c叫作常数项。
x 的值为:实例
#include <iostream>
#include <cmath>using namespace std;
int main() {
float a, b, c, x1, x2, discriminant, realpart, imaginarypart;
cout << "输入 a, b 和 c: ";
cin >> a >> b >> c;
discriminant = b*b - 4*a*c;
if (discriminant > 0) { x1 = (-b + sqrt(discriminant)) / (2*a);
x2 = (-b - sqrt(discriminant)) / (2*a);
cout << "roots are real and different." << endl;
cout << "x1 = " << x1 << endl;
cout << "x2 = " << x2 << endl;
}
else if (discriminant == 0) { cout << "实根相同:" << endl;
x1 = (-b + sqrt(discriminant)) / (2*a);
cout << "x1 = x2 =" << x1 << endl;
}
else { realpart = -b/(2*a);
imaginarypart =sqrt(-discriminant)/(2*a);
cout << "实根不同:" << endl;
cout << "x1 = " << realpart << "+" << imaginarypart << "i" << endl;
cout << "x2 = " << realpart << "-" << imaginarypart << "i" << endl;
}
return 0;}
以上程序执行输出结果为:
输入 a, b 和 c: 4 5 1 实根不同: x1 = -0.25 x2 = -1
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!