C语言改错:求方程的根,用三个函数分别求当b^2-4ac大于0,等于0,和小于0时的根,并输出结果

#include<stdio.h>
#include<math.h>
void f1(double r,double a,double b,double c);
void f2(double r,double a,double b,double c);
void f3(double r,double a,double b,double c);
int main()
{
double a,b,c,r;
scanf("%lf%lf%lf",&a,&b,&c);
r = b*b-4*a*c;
if( r > 0)
f1(r,a,b,c);
if( r = 0)
f2(r,a,b,c);
if( r < 0)
f3(r,a,b,c);
return 0;
}
void f1(double r,double a,double b,double c)
{
double x1,x2;
x1=(-b + sqrt(r))/2*a;
x2=(-b - sqrt(r))/2*a;
printf("x1=%.3lf x2=%.3lf",x1,x2);
}
void f2(double r,double a,double b,double c)
{
double x;
x=-b/2.0*a;
printf("x=%.3lf",x);
}
void f3(double r,double a,double b,double c)
{
printf("x1=%.3lf+%.3lfi x2=%.3lf-%.3lfi",-b,sqrt(r),-b,sqrt(r));
}
求指导,谢谢。

if(r=0)改为if(r==0)追问

这个问题我改过了,我想问一下那个第三种情况为什么不行?谢谢

追答

那个-b是什么意思 ,能换成(0-b)吗

追问

就是要输出虚根,要输出实部和虚部的那种。我自己改好了,谢谢呀,我采纳了~就是最后的时候要sqrt(-r)

温馨提示:答案为网友推荐,仅供参考