解题思路:
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<cstdio> #include<iostream> #include<math.h> 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; }
0.0分
0 人评分