求一元二次方程ax^2+bx+c=0的解.

问题描述:

求一元二次方程ax^2+bx+c=0的解.
输入   有多组测试数据.每组数据是一行上的三个实数a、b、c的值,a不为0.输入确保有2个实数根.
输出  对每组数据,一行输出两个实根x1和x2,其中x1>=x2,要求结果保留两位小数.
样例输入 1 5 -2
样例输出  0.37 -5.37
这是我的,
#include<stdio.h>
#include<math.h>
int main()
{
 double a,b,c,x1,x2,d,e,f,g;
  scanf("%f%f%f",&a,&b,&c);
  d=b*b-4*a*c;
  e=sqrt(d);
  f=-b+e;
  g=-b-e;
  x1=f/2*a;
  x2=g/2*a;
  if(x1>=x2)
   printf("%.2f %.2f\n",x1,x2);
   else
    printf("%.2f %.2f\n",x2,x1);
  return 0;
  }
为什么出来是这个,
   
1个回答 分类:综合 2014-10-08

问题解答:

我来补答
逻辑问题,多打印,多调试.
#include
#include
int main()
{
double a,b,c,x1,x2,d,e,f,g;
scanf("%f%f%f",&a,&b,&c);
d=b*b-4*a*c;
e=sqrt(d);
f=-b+e;
g=-b-e;
x1=f/(2*a); /* 改错 */
x2=g/(2*a);
if(x1>=x2)
printf("%.2f %.2f\n",x1,x2);
else
printf("%.2f %.2f\n",x2,x1);
return 0;
}
 
 
展开全文阅读
剩余:2000
上一页:必修3第一单元
下一页:第4课时