解题思路:
int d = b*b-4*a*c;
1. d等于0,则两个根相等并等于负的2a分之b, 2. d大于0,则两个根不等,带入公式(-b-sqrt(b*b-4*a*c))/(2*a) 3. d<0,根据算法的稳定性,需提示输出,
注意事项:
d<0时的健壮性提示
参考代码:
#include
#include
#include
using namespace std;
int main()
{
int a,b,c;
cin>>a>>b>>c;
int d=b*b-4*a*c;
double x1,x2;
if(d==0)
x1=x2=(-b)/(2*a);
else if(d>0)
{
x1 = ((-b)+sqrt(d))/(2*a);
x2 = ((-b)-sqrt(d))/(2*a);
}
else
{
printf("无解\n");
}
printf("%.2f %.2f\n",x1,x2);
return 0;
}