教材上的问题 各位大神帮忙解答一下
这是一个一元二次方程解法的C语言程序#include<stdio.h>
#include<math.h>
void main()
{
float a,b,c,disc,x1,x2,realpart,imagpart;
scanf("%f,%f,%f",&a,&b,&c);
printf("The 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(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);
imagpart=sqrt(-disc)/(2*a);
printf("has complex roots: \n");
printf("%8.4f+%8.4fi\n",realpart,imagpart);
printf("%8.4f-%8.4fi\n",realpart,imagpart);
}
}
}
问一下 如果要跳到第三个else然后执行下面的程序,那么要满足的条件是什么 ?上面不是只有fabs(disc)<=1e-6和fabs(disc)>1e-6两种情况吗?第三种情况是什么?
第三种情况应该是(disc)<-1e-6 1、如果fabs(a) > 1e-6
那么进入第一个else
2、如果 fabs(disc) > 1e-6
那么进入第二个else
3、如果 disk <= 1e-6
那么进入第三个else 小新110 发表于 2013-3-8 14:58 static/image/common/back.gif
1、如果fabs(a) > 1e-6
那么进入第一个else
2、如果 fabs(disc) > 1e-6
谢谢{:5_109:} 亚洲猴王 发表于 2013-3-8 14:10 static/image/common/back.gif
第三种情况应该是(disc)
多谢{:5_95:}
第三种情况应该是(disc)<-1e-6 帮你顶贴 哈??? 进来学习学习 顶上去
页:
[1]