编写程序,用户输入一元二次方程的系数,求其根。程序能输入两组数据,得出两组结果,能处理复数根。
提示:两组输入可用下列循环实现:
for(int i=0;i<2;i++)
{
……
}
程序运行结果如下:
输入:
2 1 -1
1 2 3
输出:
0.5
-1
-1+j1.41421
-1-j1.41421
分析:要加入分析是否有实根,没有的话要加入虚根。然后实根用求根公式写出来,注意电脑解方程需要你教它怎么做,自己编写解题的方法,它是无法直接给出你答案的(除非你直接用特殊计算器……)
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
for (int i=0;i<2;i++)
{
double a,b,c,delta,p,q;
cin>>a>>b>>c;
delta=b*b-4*a*c;
p=-b/(2*a);
q=sqrt(fabs(delta))/(2*a);
if (delta>=0)
cout<<p+q<<endl<<p-q<<endl;
else
{
cout<<p<<"+j"<<q;
cout<<endl<<p<<"-j"<<q<<endl;
}
}
return 0;
}