33,322
社区成员




#include<stdio.h>
#include<math.h>
int main()
{
double a,b,c,disc,x1,x2,m,n,p;
scanf("%lf%lf%lf",&a,&b,&c);
disc=b*b-4*a*c;
if(a==0&&b==0)
printf("Not an equation");
if(a==0&&b!=0){p=-c/b;
printf("%.2lf",p);}
if(a!=0)
{
m=-b/(2*a);
if(disc==0) printf("%.2lf",m);
if(disc>1e-6)
{
n=sqrt(disc)/(2*a);
x1=m+n;x2=m-n;
if(x1>x2)
{
printf("%.2lf %.2lf",x1,x2);}
if(x1<x2)
{
printf("%.2lf %.2lf",x2,x1);
}
}
if(disc<0)
{
n=sqrt(disc)/(2*a);
printf("%.2lf+%.2lfi%.2lf-%.2lfi",m,n,m,n);
}
}
return 0;
}
改成 if(disc<0)
{
n=sqrt(-disc)/(2*a);//加负号
printf("%.2lf+%.2lfi %.2lf-%.2lfi",m,n,m,n);//中间有空格
}
最后的disc小于0不能开根号