请大虾看一下这个c程序错在哪里 感激不尽!

来源:百度知道 编辑:UC知道 时间:2024/06/24 00:15:26
#include<stdio.h>
#include<math.h>
void main()
{
float a,b,c,x1,x2,disc;
scanf("%8.4f,%8.4f,%8.4f",&a,&b,&c);
if(fabs(a)<=1e-6)
printf("这不是一个二次方程\n");
else
{disc=b*b-4*a*c;
if(fabs(disc)<=1e-6)
{x1=-b/(2*a);
x2=-b/(2*a);
printf("%8.4f,%8.4f\n",x1,x2);
}
else
if(fabs(disc)>=1e-6)
{x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
printf("%8.4f,%8.4f\n,x1,x2");
}
else
{x1=-b/(2*a)+(sqrt(-disc)/(2*a))*i;
x2=-b/(2*a)-(sqrt(-disc)/(2*a))*i;
printf("%8.4f,%8.4f\n",x1,x2);
}

}

}/*求a x2+bx+c=0的解*/

#include<stdio.h>
#include<math.h>
void main()
{
float a,b,c,x1,x2,disc;
scanf("%8.4f,%8.4f,%8.4f",&a,&b,&c);
if(fabs(a)<=1e-6)
printf("这不是一个二次方程\n");
else
{disc=b*b-4*a*c;
if(fabs(disc)<=1e-6)
{x1=-b/(2*a);
x2=-b/(2*a);
printf("%8.4f,%8.4f\n",x1,x2);
}
else
if(disc>=1e-6)
{x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
printf("%8.4f,%8.4f\n,x1,x2");
}
else
{x1=-b/(2*a)+(sqrt(-disc)/(2*a))*i;
x2=-b/(2*a)-(sqrt(-disc)/(2*a))*i;
printf("%8.4f,%8.4f\n",x1,x2);
}

}

}/*求a x2+bx+c=0的解*/
就是把第二if的条件表达式的fabs去掉!
其他没看出问题