这个解方程程序哪里出错了,求指教

#include<stdio.h>
#include<math.h>
int main()
{
int a,b,c,x;
double disc,x1,x2;
scanf("%d %d %d",&a,&b,&c);
disc=b*b-4*a*c;
if (fabs(disc)<1e-6)
printf("\"NO\"");
else
{
if (fabs(disc)>1e-6)
{
x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
if (x1==(int)x1&&x2==(int)x2)
printf("%d %d",x1,x2);
else printf("\"NO\"");
}
else
{
x=(-b)/2*a;
if (x=(int)x)

printf("%d",x);
else printf("NO");
}
}
return 0;
}

莎莎Shasha
浏览 1207回答 1
1回答

qq_莫非

#include <stdio.h>   #include <math.h>  void main ()  {   double sqrt(double x);   int a,b,c;   double x1,x2,x,e,d,g,f;  scanf("%d %d %d",&a,&b,&c);    d=b*b-4*a*c;   if (a==0)  {      if (b!=0)  {x=-(double)c/(double)b;  if (x==0)  {x=-x;  printf("x=%.6lf\n",x);}  else  printf("x=%.6lf\n",x);  }      else       printf("Input error!\n");}  else if (d<0)  {d=-d;  e=sqrt(d);  g=-(double)b/(2*(double)a);  f=e/(2*a);      if (g!=0)       printf("x1=%.6lf+%.6lfi\nx2=%.6lf-%.6lfi\n",g,f,g,f);      else      printf("x1=%.6lfi\nx2=-%.6lfi\n",f,f);}  else if (d==0)  {     x1=x2=-b/(2*a);        printf("x1=x2=%.6lf\n",x1);}        else    {    e=sqrt(d);         x1=(-b+e)/(2*a);            x2=(-b-e)/(2*a);            printf("x1=%.6lf\nx2=%.6lf\n",x1,x2);}  }
打开App,查看更多内容
随时随地看视频慕课网APP