【求方程ax2+bx+c=0的根,用三个函数分别求当b2-4ac>0,等于0和小于0的根并输出结果.从主函数输入a,b,c的值】
求方程ax2+bx+c=0的根,用三个函数分别求当b2-4ac>0,等于0和小于0的根并输出结果.从主函数输入a,b,c的值
【求方程ax2+bx+c=0的根,用三个函数分别求当b2-4ac>0,等于0和小于0的根并输出结果.从主函数输入a,b,c的值】
求方程ax2+bx+c=0的根,用三个函数分别求当b2-4ac>0,等于0和小于0的根并输出结果.从主函数输入a,b,c的值
#include
#include
#include
intJudge(doublea,doubleb,doublec)
{
doubleresult=b*b-4*a*c;
if(result==0)
return0;
elseif(result>0)
return1;
else
return-1;
}
voidComputeGreatThanZero(doublea,doubleb,doublec)
{
printf("x1=%gf,x2=%gf",(-b+sqrt(b*b-4*a*c))/(2*a),((-b-sqrt(b*b-4*a*c))/(2*a)));
}
voidComputeEqualZero(doublea,doubleb,doublec)
{
printf("x1=x2=%g",-b/(2*a));
}
voidComputeBelowZero(doublea,doubleb,doublec)
{
doubledelta=sqrt(4*a*c-b*b);
doubletemp=delta/(2*a);
printf("x1=%g",-b/(2*a));
if(temp>0)
printf("+%gi,",temp);
else
printf("-%gi,",fabs(temp));
printf("x2=%g",-b/(2*a));
if(delta>0)
printf("-%gi",fabs(temp));
else
printf("+%gi",fabs(temp));
}
voidmain()
{
doublea,b,c;
intflag;
scanf("%lf%lf%lf",&a,&b,&c);
if(a==0)
{
printf("na=0n");
exit(1);
}
flag=Judge(a,b,c);
if(flag>0)
ComputeGreatThanZero(a,b,c);
elseif(flag==0)
ComputeEqualZero(a,b,c);
else
ComputeBelowZero(a,b,c);
}
//zd_44.cpp:Definestheentrypointfortheconsoleapplication.
//
#include
#include
floatx1,x2,disc,p,q;
greater_than_zero(floata,floatb)
{
x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
}
equal_to_zero(floata,floatb)
{
x1=x2=(-b)/(2*a);
}
smaller_than_zero(floata,floatb)
{
p=-b/(2*a);
q=sqrt(abs(disc))/(2*a);
}
intmain(intargc,char*argv[])
{
floata,b,c;
printf("Inputa,b,c:");
scanf("%f,%f,%f",&a,&b,&c);
printf("nequation:%5.2f*x*x+%5.2f*x+%5.2f=0n",a,b,c);
disc=b*b-4*a*c;
printf("root:n");
if(disc>0)
{
greater_than_zero(a,b);
printf("x1=%5.2ftx2=%5.2fnn",x1,x2);
}
elseif(disc==0)
{
equal_to_zero(a,b);
printf("x1=%5.2ftx2=%5.2fnn",x1,x2);
}
else
{
smaller_than_zero(a,b);
printf("x1=%5.2f+%5.2fitx2=%5.2f-%f5.2in",p,q,p,q);
}
printf("HelloWorld!n");
return0;
}
运行结果:
Inputa,b,c:7,4,3
equation:7.00*x*x+4.00*x+3.00=0
root:
x1=-0.29+0.59ix2=-0.29-0.5890155.2i
HelloWorld!
Pressanykeytocontinue