计算a*x^2+b*x+c=0 用c语言 和matlab算出来 结果不一样 什么地方错了? 谢谢
来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/18 12:14:41
计算a*x^2+b*x+c=0 用c语言 和matlab算出来 结果不一样 什么地方错了? 谢谢
c:
# include
# include
int main(void)
{
float a,b,c;
double disc,twoa,term1,term2;
scanf("%f %f %f",&a,&b,&c);
if(a==0)
if(b==0)
printf("wrong\n");
else
printf("=%f\n",-c/b);
else
{
disc=b*b-4*a*c;
twoa=2*a;
term1=-b/twoa;
term2=sqrt(fabs (disc))/twoa;
if(disc> solve('2*x^2+6*x+1=0','x')
ans =
-3/2+1/2*7^(1/2)
-3/2-1/2*7^(1/2)
结果和c的 不一样.?
谢谢
c:
# include
# include
int main(void)
{
float a,b,c;
double disc,twoa,term1,term2;
scanf("%f %f %f",&a,&b,&c);
if(a==0)
if(b==0)
printf("wrong\n");
else
printf("=%f\n",-c/b);
else
{
disc=b*b-4*a*c;
twoa=2*a;
term1=-b/twoa;
term2=sqrt(fabs (disc))/twoa;
if(disc> solve('2*x^2+6*x+1=0','x')
ans =
-3/2+1/2*7^(1/2)
-3/2-1/2*7^(1/2)
结果和c的 不一样.?
谢谢
楼主你的tem1=-b/twoa=-b/(2*a)
tem2=sqrt(fabs (disc))/twoa=sqrt(b*b-4*a*c)
这两个明显还不是方程的根吖,根据公式(-b±sqrt(b*b-4*a*c))/2*a应该是term1+term2和term1-term2.
还有就是我感觉你上面判断的
if(a==0)
if(b==0)
我猜测你是想让a b都不为0吧?,那么写成if(a==0&&b==0)好点吧,但是根据你下面的printf("=%f\n",-c/b),可以看出明显b不能为0,但是a却没有要求,而要让a*x^2+b*x+c=0有解的话只要a,b不同时为0就行了,再根据你的-c/b,得知b不能为0,那么判断的时候我感觉只需要判断if(b==0)就可以了,a可以取任意值.楼主可以试着修改一下,还有什么问题我们再一起讨论~!
tem2=sqrt(fabs (disc))/twoa=sqrt(b*b-4*a*c)
这两个明显还不是方程的根吖,根据公式(-b±sqrt(b*b-4*a*c))/2*a应该是term1+term2和term1-term2.
还有就是我感觉你上面判断的
if(a==0)
if(b==0)
我猜测你是想让a b都不为0吧?,那么写成if(a==0&&b==0)好点吧,但是根据你下面的printf("=%f\n",-c/b),可以看出明显b不能为0,但是a却没有要求,而要让a*x^2+b*x+c=0有解的话只要a,b不同时为0就行了,再根据你的-c/b,得知b不能为0,那么判断的时候我感觉只需要判断if(b==0)就可以了,a可以取任意值.楼主可以试着修改一下,还有什么问题我们再一起讨论~!
C语言 输入参数a,b,c,求一元二次方程a*x*x+b*x+c=0的根,结果保留2位小数.
求解一元二次方程a*x*x+b*x+c=0 用C语言写
(x+a+b)/c+(x+b+c)/a+(x+c+a)/b=-3谢谢了,大神帮忙啊
用matlab语言表示:a+根号下b*e^c-x/y 紧急!
C语言 表达式x=a=2,3*a*x,3*x; 的值怎么求如题 谢谢了
matlab中计算四次方方程a*x^4+b*x+c=0的实数根.
C语言编程,用C语言编写下面这个方程.方程:x²(x-A)=B 注:A和B都是已知常数,x是待求未知数.
matlab解一元二次方程a*x^2+b*x+c
C语言 求a*x*x+b*x+c=0的解
matlab 求代数方程组 a*x^2+b*x+c=0 x+y=0 关于x,y的解,并分别绘制x和y关于b和c的图像(a
C语言 a=b=c=0;x=35 if(!a)x--;
Matlab中x(kk(a:b),c: