求一元二次方程ax^2+bx+c=0的解.输入 有多组测试数据.每组数据是一行上的三个实数a、b、c的值,a不为0.输入确保有2个实数根.输出 对每组数据,一行输出两个实根x1和x2,其中x1>=x2,要求结果保
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/29 17:21:51
求一元二次方程ax^2+bx+c=0的解.输入 有多组测试数据.每组数据是一行上的三个实数a、b、c的值,a不为0.输入确保有2个实数根.输出 对每组数据,一行输出两个实根x1和x2,其中x1>=x2,要求结果保
求一元二次方程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;
}
为什么出来是这个,
求一元二次方程ax^2+bx+c=0的解.输入 有多组测试数据.每组数据是一行上的三个实数a、b、c的值,a不为0.输入确保有2个实数根.输出 对每组数据,一行输出两个实根x1和x2,其中x1>=x2,要求结果保
逻辑问题,多打印,多调试.
#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;
}