C语言实验题――一元二次方程 II
/*
解一元二次方程
*/
#include<stdio.h>
#include<math.h>
void swap(double *x,double *y)
{
double t=*x;
*x=*y;
*y=t;
}
int main()
{
double a,b,c,tai,x1,x2;
scanf("%lf %lf %lf",&a,&b,&c);
if(a<0)
a*=-1,b*=-1,c*=-1;
tai=b*b-4*a*c;
if(tai>=0)
{
x1=(-b+sqrt(tai))/(2*a);
x2=(-b-sqrt(tai))/(2*a);
if(x1<x2)
swap(&x1,&x2);
printf("%.2f %.2f",x1,x2);
}
else
{
double i=-b/(2*a);
double j=sqrt(-tai)/(2*a);
printf("%.2f+%.2fi %.2f-%.2fi",i,j,i,j);
}
return 0;
}