C语言编程例题:用二分法求方程的解

方程为:2*x^3-4*x^2+3*x-6=0我是C新手,编了如下的程序:#include<stdio.h>#include<math.h>voidmain(){floa... 方程为:2*x^3-4*x^2+3*x-6=0

我是C新手,编了如下的程序:

#include <stdio.h>
#include <math.h>
void main()
{
float c,d,f,a,b;
a=-10;b=10;
while (fabs(a-b)>=0.000001)
{
c=(a+b)/2;
d=2*a*a*a-4*a*a+3*a-6;
f=2*c*c*c-4*c*c+3*c-6;
if (f=0) goto loop;
else if (f*d>0) (a=c,d=f);
else b=c;
}
loop:printf("%f",c);
}

执行后给出的答案是-9.9999,明显不对,不知道程序错在哪,求指教。
展开
 我来答
shine1991
科技发烧友

2012-08-13 · 智能家居/数码/手机/智能家电产品都懂点
知道顶级答主
回答量:4.7万
采纳率:82%
帮助的人:2.3亿
展开全部
#include <stdio.h>
#include <math.h>
void main()
{
float c,d,f,a,b;
a=-10;b=10;
while (fabs(a-b)>=0.000001)
{
c=(a+b)/2;
d=2*a*a*a-4*a*a+3*a-6;
f=2*c*c*c-4*c*c+3*c-6;
if (f==0) goto loop;//
else if (f*d>0) a=c;//
else b=c;
}
loop:printf("%f",c);
}
牙刷的悲伤
2012-08-13 · TA获得超过1467个赞
知道小有建树答主
回答量:341
采纳率:0%
帮助的人:393万
展开全部
if (f=0) goto loop;

这一句有问题,等于符号是:"==".
"="这是赋值号
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
米果果vip
2012-08-13 · TA获得超过132个赞
知道答主
回答量:30
采纳率:0%
帮助的人:16万
展开全部
#include <stdio.h>
#include <math.h>
void main()
{
float x0,x1,x2,fx0,fx1,fx2;
do
{
printf("Enter x1,x2:");
scanf("%f%f",&x1,&x2);
fx1=x1*((2*x1-4)*x1+3)-6;
fx2=x2*((2*x2-4)*x2+3)-6;
}while(fx1*fx2>0);
do
{
x0=(x1+x2)/2;
fx0=x0*((2*x0-4)*x0+3)-6;
if((fx0*fx1)<0)
{
x2=x0;
fx2=fx0;
}
else
{
x1=x0;
fx1=fx0;
}
}
while(fabs(fx0)>=1e-5);
printf("x=%6.2f\n",x0);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chentw0102
2012-08-13
知道答主
回答量:35
采纳率:0%
帮助的人:12.4万
展开全部
建议不要用goto转向语句
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式