实数解与复数解均可

#include<iostream>

using namespace std;


void Calculate(double a, double b, double c)
{
	double m = b * b - 4 * a * c;
	if (m == 0)
	{
		cout << "该方程只有一个解"<<endl;
		cout <<"x=" << -a * 2 / b;
	}
	if (m > 0)
	{
		cout << "该方程有两个不同的实根" << endl;
		double m0 = (-b + sqrt(m)) / (2 * a);
		double n0 = (-b - sqrt(m)) / (2 * a);
		cout << "x1=" << m0 << "  x2=" << n0 ;
	}
	if (m < 0)
	{
		cout << "该方程有两个不同的复数根" << endl;
		if (b != 0)
		{
		
			double m1 = -b  / (2 * a);
			double m2 = sqrt(-m) / (2 * a);
			double n1 = -b  / (2 * a);
			double n2 = - sqrt(-m) / (2 * a);
			cout << "x1=" << m1 << (m2 > 0 ? "+" : "-") << fabs(m2) << "i" << "  x2=" << n1 << (n2 > 0 ? "+" : "-") << fabs(n2) << "i";
		}
		else
		{
			double m3 = sqrt(-m) / (2 * a);
			double n3 = -sqrt(-m) / (2 * a);
			cout << "x1=" << m3 << "i   x2=" << n3 << "i";
		}
		
	}
}

int main()
{
	double a, b, c;
	cout << "本程序用于求解一元二次方程(a*x_2+b*x+c=0的根." << endl << "请输入对应的系数:";
	cin >> a >> b >> c;
	Calculate(a, b, c);

	system("pause");
	return 0;
}
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐