计算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");elseprintf("=%f\n",

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/12 15:38:52

计算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");elseprintf("=%f\n",
计算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的 不一样.?
谢谢

计算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");elseprintf("=%f\n",
楼主你的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可以取任意值.楼主可以试着修改一下,还有什么问题我们再一起讨论~!

结果怎么个不一样法了?
顺便说哈
你的term1和term2本来就不是方程的解啊
解应该是(-b+-sqrt(disc))/2a
大概就是-term1+term2和-term1-term2

赞同
依若可芯
的回答

求解一元二次方程a*x*x+b*x+c=0 用C语言写 C语言中的一元二次方程计算求ax*x+bx+c=0,其中a,b,c是键盘输入 计算数学表达式2x/(3b+2a)的值.用C语言. C语言:输入两个分数,计算它们的和.用a/b+c/d=x/y的形式.源程序 用C语言编程,已知f(x)=(1+x^2),编写函数用梯形法计算f(x)在区间[a,b]上的定积分 C语言求助,x=a&b&&c C语言:X=0,a=1,b=2; X=a*++b;求先X 值 计算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 );elseprintf(=%f , (a-b)?(x++):(y++) C语言的 C语言.VC6.0软件写用变步长梯形求积法计算定积分f(x)=e^(-x^2)在[1,2]上积分.C语言C语言 c 语言 matlab 计算a*(x^2)+b*x+c=0 怎么算出来不一样.什么地方有问题?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 );elseprintf(=%f ,-c/b);e 如何用C语言编写方程:A*x*x*x*x*x*x+B*x*x*x+C*x*x+D*x+E*(1+F*x*x)*x*x*exp(-G*x*x)-H=0 c语言计算3.若有代数式(x,y,b,c是浮点数),则正确的C语言表达式是()A.2/3*x^2*y/b*c B.2/3.0*x^2*y/b/cC.2*x*x*y/3*b*c D.x*x/b/c*2/3*yD错在哪里 用c语言设计程序:在ax^2+b^x+c=0中求x的值.如题给个完整c语言 用vb语言编写以下题目:1、建立一个窗体程序用于计算数学函数:Y=a*X^3+b*X^2+c*X用vb语言编写以下题目:1、建立一个窗体程序用于计算数学函数:Y=a*X^3+b*X^2+c*X+d 的值,并将计算的函 C语言中x=a > b 100 : y=x^(a+b^c)用c语言怎么写表达式 C语言 y=b-c/a(x-b)+6x 求表达式