
求一个c语言源程序:ax*x+bx+c=0,x=?输入a,b,c
2个回答
展开全部
# include<stdio.h>
# include<math.h>
int main()
{
void root2(double a,double b,double disc); //定义方程有两个根时的函数
void root1(double a,double b); //定义方程只有一个根时的函数
void root0(); //定义方程没有实数解是的函数
double a,b,c,disc,x;
printf("请输入a,b,c的值:");
scanf("%lf %lf %lf",&a,&b,&c);
if(a==0)
{
x=-(c/b);
printf("x=%lf\n",x);
}
else
{
disc=b*b-4*a*c;
if(disc>0)
root2(a,b,disc);
else if(disc==0)
root1(a,b);
else
root0();
}
return 0;
}
void root2(double a,double b,double disc)
{
double x1,x2;
x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
printf("x1=%lf\nx2=%f\n",x1,x2);
}
void root1(double a,double b)
{
double x;
x=(-b)/(2*a);
printf("x1=x2=%lf\n",x);
}
void root0()
{
printf("方程没有实数解\n");
}
# include<math.h>
int main()
{
void root2(double a,double b,double disc); //定义方程有两个根时的函数
void root1(double a,double b); //定义方程只有一个根时的函数
void root0(); //定义方程没有实数解是的函数
double a,b,c,disc,x;
printf("请输入a,b,c的值:");
scanf("%lf %lf %lf",&a,&b,&c);
if(a==0)
{
x=-(c/b);
printf("x=%lf\n",x);
}
else
{
disc=b*b-4*a*c;
if(disc>0)
root2(a,b,disc);
else if(disc==0)
root1(a,b);
else
root0();
}
return 0;
}
void root2(double a,double b,double disc)
{
double x1,x2;
x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
printf("x1=%lf\nx2=%f\n",x1,x2);
}
void root1(double a,double b)
{
double x;
x=(-b)/(2*a);
printf("x1=x2=%lf\n",x);
}
void root0()
{
printf("方程没有实数解\n");
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询