}
else{
printf("x1=x2=%.2f\n",-b*1.0/(2*a));
}
}
if(a!=0&&a>0){
if(z>0){
x1 = (-b+sqrt(z))/(a*2);
x2 = (-b-sqrt(z))/(a*2);
printf("x1=%.2f,x2=%.2f\n",x1,x2);
}
else if(z < 0){
if(b!=0)
{
double real = (-b)*1.0/(2*a);
double imag = sqrt(-z)/(2*a);
imag=abs(imag);
printf("x1=%.2f+%.2fi,x2=%.2f%.2fi\n",real,imag,real,-imag);
}else{
double x = sqrt(-z)*1.0/(2*a);
printf("x1=%.2fi,x2=%.2fi\n",x,-x);
}
}
else{
printf("x1=x2=%.2f\n",-b*1.0/(2*a));
}
}
else if(a==0)
{
printf("not a quadratic equation!\n");
}
}
}
头文件有些是乱加的因为系统说不能雷同所以防止一样加了一些没必要的头文件
你代码怎么这么复杂。参考如下:
#include <stdio.h>
#include <math.h>
int main()
{
double a,b,c;
double x1,x2,z;
while(scanf("%lf %lf %lf",&a,&b,&c)!=EOF)
{
if (a == 0)
{
printf("not a quadratic equation!\n");
}else
{
z = b*b - 4*a*c;
if (z>0)
{
x1 = -b/(2*a);
x2 = sqrt(z)/(2*a);
printf("x1=%.2lf+%.2lf,x2=%.2lf-%.2lf\n",x1,x2,x1,x2);
}else if (z==0)
{
x1 = -b/(2*a);
printf("x1=x2=%.2lf\n",x1);
}else
{
x1 = -b/(2*a);
x2 = sqrt(-z)/(2*a);
printf("x1=%.2lf+%.2lfi,x2=%.2lf-%.2lfi\n",x1,x2,x1,x2);
}
}
}
return 0;
}
对变量a,b,c进行初始化一下;
float a=0,b=0,c=0;