求方程根问题
这是源码,运行时说else前没有if,麻烦大家看一下{:10_269:}#include <stdio.h>
#include <math.h>
int main()
{
double a,b,c,disc,x1,x2,realpart,imagepart;
scanf("%lf%lf%lf",&a,&b,&c);
printf("This is a equation");
if(fabs(a)<=1e-6)
{
printf("is not a quadratic");
}
else
{
disc=b*b-4*a*c;
if(fabs(disc)<=1e-6)
{
printf("has two equal roots:%8.4f\n",-b/(2*a));
}else
{
if(fabs(disc)==1e-6)
{
printf("have no roots:%8.4f\n",-b/(2*a));
}
}else ----------------------这里报错了
{
if(disc>1e-6)
{
x1=(-b+sqrt(disc)/(2*a));
x1=(-b-sqrt(disc)/(2*a));
printf("has distinct real roots:%8.4f and %8.4f\n",x1,x2);
}
}else ---------------------这也报错了
{
realpart=-b/(2*a);
imagepart=sqrt(-disc)/(2*a);
pritnf("has complex roots:\n");
printf("%8.4f+%8.4fi\n",realpart,imagepart);
printf("%8.4f-%8.4fi\n",realpart,imagepart);
}
}
return 0;
} 你的if...else... 用法是错的。
有if…else if…else if…else…的用法
没有if…else…else…else…的用法
#include <stdio.h>
#include <math.h>
int main()
{
double a,b,c,disc,x1,x2,realpart,imagepart;
scanf("%lf%lf%lf",&a,&b,&c);
printf("This is a equation ");
if(fabs(a)<=1e-6)
{
printf("is not a quadratic");
}
else
{
disc=b*b-4*a*c;
if(fabs(disc)<=1e-6)
{
printf("has two equal roots:%8.4f\n",-b/(2*a));
}else if(fabs(disc)==1e-6)
{
printf("have no roots:%8.4f\n",-b/(2*a));
}
else if(disc>1e-6)
{
x1=(-b+sqrt(disc)/(2*a));
x2=(-b-sqrt(disc)/(2*a));
printf("has distinct real roots:%8.4f and %8.4f\n",x1,x2);
}
else// ---------------------这也报错了
{
realpart=-b/(2*a);
imagepart=sqrt(-disc)/(2*a);
printf("has complex roots:\n");
printf("%8.4f+%8.4fi\n",realpart,imagepart);
printf("%8.4f-%8.4fi\n",realpart,imagepart);
}
}
return 0;
} {:10_254:}谢谢您的回答,
页:
[1]