c语言.解一元二次方程ax2+bx+c=0的解.下面是我写的,哪错了?
问题描述:
c语言.解一元二次方程ax2+bx+c=0的解.下面是我写的,哪错了?
输入
a,b,c的值.
输出
两个根X1和X2,其中X1>=X2.结果保留两位小数.
#include
#include
void main ()
{
\x05double a,b,c,d,x1,x2;
\x05scanf("%lf%lf%lf",&a,&b,&c);
\x05d=pow(b,2)-4*a*c;
\x05x1=(-b-sqrt(d))/(2*a),
\x05x2=(-b+sqrt(d))/(2*a);
if (x1>=x2)
printf("%.2lf %.2lf\n",x1,x2);
\x05else
\x05 printf("%.2lf %.2lf\n",x2,x1);
}
答
//对d的正负要做判!
#include
#include
void main ()
{
double a,b,c,d,x1,x2;
scanf("%lf%lf%lf",&a,&b,&c);
d=b*b-4*a*c;
if (d > 0)
{
x1=(-b-sqrt(d))/(2*a);
x2=(-b+sqrt(d))/(2*a);
printf("%.2lf %.2lf\n",x1,x2);
}
else if (d printf("无解\n");
else
printf("x1 = x2 = %.2lf\n", -b / (2 * a));
}