求一元二次方程的解
#include<iostream>
#include <math.h>
using namespace std;
int main()
{
double a,b,c,d,x,y;
cout<<"欢迎使用“拜占庭”解方程,一般式为ax^2+bx+c=0"<<endl;
cout<<"请输入系数a,b,c。"<<endl;
cin>>a>>b>>c;
cout<<"你输入的方程是"<<a<<"x^2+"<<b<<"x+"<<c<<"=0"<<endl;
d=b*b-4*a*c;
if(d>=0)
{
if(d>0)
{
x=((-b)+sqrt(d))/(2*a);
y=((-b)-sqrt(d))/(2*a);
cout<<"方程有两个解"<<" "<<x<<" "<<y<<endl;
}
else
{
x=((-b)+sqrt(d))/(2*a);
cout<<"方程有一个的根:"<<x<<endl;
}
}
else
cout<<"这个方程没有实数解"<<endl;
return 0;
}
解题思路
- 首先从数学的角度来想一下这道题怎么做,数学上有个求根公式,为
根据这个,对应着C++上的求根函数 sqrt(),解决此题分为三种情况①两根不同②两根相同③无根。 - 此题为老师留的作业练手题,如果有错误或者更优的解法在下留言分享,我会每天都关注评论区。