萌新求助,输入一元二次方程的系数a,b,c,求出根,里面的逻辑错误(考虑虚部)修改版问题
#include<stdio.h>#include<math.h>
int main()
{
double a,b,c;
scanf("%lf,%lf,%lf",&a,&b,&c);
double g=b*b-4*a*c;
if(g>=0)
{
printf("x1=%f\n",(-b+sqrt(g))/(2*a));
printf("x2=%f\n",(-b-sqrt(g))/(2*a));
}
else
{
printf("x1=%f+%lfi\n",-b/(2*a),sqrt(-g)/(2*a));
printf("x2=%f-%lfi\n",-b/(2*a),sqrt(-g)/(2*a));
}
return 0;
}
感谢大家给我提供一些解决的思路,我试着按照自己的想法进行了一些修改,
我的目的是 以这样方式输入
1,3,1
x1=-0.381966
x2=-2.618034
3,1,2
x1=-0.166667+0.799305i
x2=-0.166667-0.799305i
可结果是:
1,3,1
x1=-0.000000+0.000000i
x2=-0.000000-0.000000i
3,1,2
x1=-0.000000+0.000000i
x2=-0.000000+0.000000i
这是为什么呢?
[此贴子已经被作者于2017-10-11 12:01编辑过]