C语言实验题――一元二次方程 II

 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;
}