1.设计思路:
由一元二次方程求根方法可知:
2.代码实现:
//从键盘输入一元二次方程的系数a,b,c,求此一元二次方程ax2+bx+c=0的解。
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double a,b,c,x1,x2,d;
cout<<"输入方程的3个系数a,b,c\n";
cin>>a>>b>>c;
d=b*b-4*a*c;
if(a==0)
{
x1=-c/b;
cout<<"该方程不是二次方程 x="<<x1<<endl;
}
else if (d==0)
{
x1=x2=-b/(2*a);
cout<<"方程有两个相等的实根\nx1=x2="<<x1<<endl;//(2 8 8)(TestInput)
}
else if(d>0)
{
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
cout<<"方程有两个不等的实根\nx1="<<x1<<",x2="<<x2<<endl;//(1 1 -6)(TestInput)
}
else
{
double r=-b/(2*a);
double q=sqrt(-d)/(2*a);
cout<<"方程有两个共轭的复数根\n";//(1 2 3)(TestInput)
cout<<"x1="<<r<<"+"<<q<<"i\n";
cout<<"x2="<<r<<"-"<<q<<"i\n";
}
system("pause");
return 0;
}
3.运行结果:
(1).当Delta=0,方程有2个相等的实根
(2).当Delta>0时,方程有2个不相等的实根:
(3).当Delta<0时,方程有2个虚根:
(4).当输入的系数a为0,输出此方程不是一元二次方程
若要实现同样效果请看前文: C++程序设计基础之基于Dev-Cpp的环境搭建
版权声明:本文为CSDN博主「 Apollo-007」的原创文章,
遵循CC BY-NC-SA 4.0版权协议,转载请附上原文出处链接及本声明。
原文链接: https://apollo.blog.csdn.net/article/details/124234158