描述:求一元二次方程ax2+bx+c=0的解。a,b,c为任意实数。
输入:输入数据有一行,包括a b c的值
输出:按以下格式输出方程的根x1和x2。x1和x2之间有一个空格。x1 x2
(1)如果x1和x2为实根,则以x1>=x2输出。
(2)如果方程是共轭复根,x1=m+ni,x2=m-ni,其中n>0。其中x1, x2, m,n均保留2位小数。
样例输入:1 2 3
样例输出:-1.00+1.41i -1.00-1.41i
提示:复根公式
考点:公式的理解
代码:
#include <stdio.h>
#include <math.h>
int main()
{
double a,b,c;
double die;
double x1,x2;
double n,m;
scanf("%lf %lf %lf",&a,&b,&c); //输入a,b,c
die=b*b-4*a*c; //求die的值
if(die>=0) //如果die大于等于0则有值
{
x1=(-b+sqrt(die))/(2.0*a);
x2=(-b-sqrt(die))/(2.0*a);
if(x1>=x2)
{
printf("%.2lf %.2lf",x1,x2); //保留两位小数
}else
{
printf("%.2lf %.2lf ",x2,x1);
}
}else //die<0求共轭复根
{
n=sqrt(-die)/(2.0*a);
m=-b/(2.0*a);
if (n<0)
n=-n;
printf("%.2lf+%.2lfi ",m,n);
printf("%.2lf-%.2lfi",m,n);
}
return 0;
}