这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 高校专区 » 岭南EE码农港 » 求一元二次ax²+bx+c=0的根,用3个函数分别求当b²-4ac大于零,等于零

共4条 1/1 1 跳转至

求一元二次ax²+bx+c=0的根,用3个函数分别求当b²-4ac大于零,等于零和小于零时的根,并输出结果。从主函数输入a,b,c的值。

菜鸟
2014-11-25 22:54:33     打赏
#include <stdio.h>
#include <math.h>
float x1,x2,disc,p,q;
void main()
{void greater_than_zero(float,float);
void equal_to_zero(float,float);
void smaller_than_zero(float,float);
float a,b,c;
printf("\ninput a,b,c:");
scanf("%f,%f,%f",&a,&b,&c);
printf("equation:%5.2f*x*x+%5.2f*x+%5.2f=0\n",a,b,c);
disc=b*b-4*a*c;
printf("root:\n");
if (disc>0)
{
greater_than_zero(a,b);
printf("x1=%f\t\x2=%f\n",x1,x2);
}
else if (disc==0)
{equal_to_zero(a,b);
printf("x1=%f\t\x2=%f\n",x1,x2);
}
else
{smaller_than_zero(a,b);
printf("x1=%f+%fi\tx2=%f-%fi\n",p,q,p,q);
}
}
void greater_than_zero(float a,float b)
{x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
}
void equal_to_zero(float a,float b)
{
x1=x2=(-b)/(2*a);
}
void smaller_than_zero(float a,float b)
{
p=-b/(2*a);
q=sqrt(-disc)/(2*a);
}

 

#include
#include
float x1,x2,disc,p,q;
void main()
{void greater_than_zero(float,float);
void equal_to_zero(float,float);
void smaller_than_zero(float,float);
float a,b,c;
printf("\ninput a,b,c:");
scanf("%f,%f,%f",&a,&b,&c);
printf("equation:%5.2f*x*x+%5.2f*x+%5.2f=0\n",a,b,c);
disc=b*b-4*a*c;
printf("root:\n");
if (disc>0)
{
greater_than_zero(a,b);
printf("x1=%f\t\x2=%f\n",x1,x2);
}
else if (disc==0)
{equal_to_zero(a,b);
printf("x1=%f\t\x2=%f\n",x1,x2);
}
else
{smaller_than_zero(a,b);
printf("x1=%f+%fi\tx2=%f-%fi\n",p,q,p,q);
}
}
void greater_than_zero(float a,float b)
{x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
}
void equal_to_zero(float a,float b)
{
x1=x2=(-b)/(2*a);
}
void smaller_than_zero(float a,float b)
{
p=-b/(2*a);
q=sqrt(-disc)/(2*a);
}
总结:做该程序时,需要足够的细心和高度关注。该程序是一个方程求根程序。程序虽然比较复杂,但是写该程序过程中不难发现可以运用学到的知识。例如“定义一个函数”和把握好全局变量。也再次认识C语言程序的强大功能。

菜鸟
2014-11-25 23:04:21     打赏
2楼
#include <stdio.h>
#include <math.h>
float x1,x2,disc,p,q;
void main()
{void greater_than_zero(float,float);
void equal_to_zero(float,float);
void smaller_than_zero(float,float);
float a,b,c;
printf("\ninput a,b,c:");
scanf("%f,%f,%f",&a,&b,&c);
printf("equation:%5.2f*x*x+%5.2f*x+%5.2f=0\n",a,b,c);
disc=b*b-4*a*c;
printf("root:\n");
if (disc>0)
{
greater_than_zero(a,b);
printf("x1=%f\t\x2=%f\n",x1,x2);
}
else if (disc==0)
{equal_to_zero(a,b);
printf("x1=%f\t\x2=%f\n",x1,x2);
}
else
{smaller_than_zero(a,b);
printf("x1=%f+%fi\tx2=%f-%fi\n",p,q,p,q);
}
}
void greater_than_zero(float a,float b)
{x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
}
void equal_to_zero(float a,float b)
{
x1=x2=(-b)/(2*a);
}
void smaller_than_zero(float a,float b)
{
p=-b/(2*a);
q=sqrt(-disc)/(2*a);
}

 


菜鸟
2014-11-26 19:22:51     打赏
3楼
对于你这渣渣,我只能呵呵了

菜鸟
2014-11-26 19:29:22     打赏
4楼
顶楼上,怎么不注意缩进格式?

共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]