求方程ax2+bx+c=0的根,用3个函数分别求当b2-4ac大于0,等于0,和小于0时的根并输出结果.从主函数a,b,
2个回答

#include

#include

// b^2-4ac == 0

void fun1(double &a,double &b,double &c,double &d){

double ans = -b/(2*a);

printf("b^2-4ac == 0 , x1 = x2 = %lf.n",ans);

}

// b^2-4ac > 0

void fun2(double &a,double &b,double &c,double &d){

double ans1,ans2;

ans1 = (-b+sqrt(d)) / (2*a);

ans2 = (-b-sqrt(d)) / (2*a);

printf("b^2-4ac > 0 , x1 = %lf , x2 = %lf.n",ans1,ans2);

}

// b^2-4ac < 0

void fun3(double &a,double &b,double &c,double &d){

double real,imar;

real = -b/(2*a);

imar = sqrt(-d) / (2*a);

printf("b^2-4ac < 0 , x1 = %lf+%lfi , x2 = %lf-%lfi.n",real,imar,real,imar);

}

int main(){

double a,b,c,d;

printf("please input a,b,c.n");

while(scanf("%lf%lf%lf",&a,&b,&c)!=EOF){

d = b*b-4*a*c;

if(d==0) fun1(a,b,c,d);

else if(d>0) fun2(a,b,c,d);

else fun3(a,b,c,d);

printf("please input a,b,c.n");

}

}