用c语言编程二分法的题

题目:用二分法求方程x*x*x*x-3*x+1=0在区间【0.3,0.4】中的根,要求误差不超过(1/2)*(1/(10*10))要求:用c语言编程,急(半小时内要答案)... 题目:用二分法求方程x*x*x*x-3*x+1=0在区间【0.3,0.4】中的根,要求误差不超过(1/2)*(1/(10*10))
要求:用c语言编程,急(半小时内要答案)!
11点半前把答案给我就行
展开
 我来答
terranlong
推荐于2016-10-27 · TA获得超过7294个赞
知道大有可为答主
回答量:2660
采纳率:0%
帮助的人:4006万
展开全部
#include <stdio.h>
float f(float x)
{
return (x * x * x * x - 3 * x + 1);
}

void main()
{
float wucha = ((float)1/(float)2)*((float)1/((float)10*(float)10));
float maxi = 0.4;
float mini = 0.3;
float midi = (maxi + mini) / 2.0;
while ((maxi - midi) > wucha)
{
if (f(maxi) * f(midi) >= 0)
{
maxi = midi;
midi = (maxi + mini) / 2.0;
}
else
{
mini = midi;
midi = (maxi + mini) / 2.0;
}
}
printf("答案是:%f\n", midi);
}
//0.340625
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wanggang8826
2011-09-23 · TA获得超过238个赞
知道小有建树答主
回答量:178
采纳率:0%
帮助的人:147万
展开全部
float flag=0.3*0.3*0.3*0.3-3*0.3+1>0?1:0;
float fun(float left ,float right){
float mid=(left+right)/2;
float res=mid*mid*mid*mid-3*mid+1;
if(abs(res)<(1/2)*(1/(10*10)))
return mid;
else if((flag==1&&res<0)||(flag==0&&res>0))
return fun(left,mid);
else if((flag==1&&res>0)||(flag==0&&res<0))
return fun(mid,right);
}
追问
错误太多,根本就运行不了啊,麻烦你再修改一下吧
追答
呵呵,没调试刚才。
这是调试通过的。
#include
#include
using namespace std;
float flag=0.3*0.3*0.3*0.3-3*0.3+1>0?1:0;
float fun(float left ,float right){
float mid=(left+right)/2;
float res=mid*mid*mid*mid-3*mid+1;
if(abs(res)0))
return fun(left,mid);
else if((flag==1&&res>0)||(flag==0&&res<0))
return fun(mid,right);
}
void main(){
cout<<fun(0.3,0.4);
system("pause");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
judyfeng1980
2011-09-23 · TA获得超过3255个赞
知道小有建树答主
回答量:935
采纳率:0%
帮助的人:723万
展开全部
double cal(double x)
{
return x*x*x*x-3*x+1;
}

int main(int argc, char* argv[])
{
//x*x*x*x-3*x+1
// y=x*x*x*x-3*x+1;
double x1=0.3;
double x2=0.4;
double y1=cal(x1);
double y2=cal(x2);
double x,y;
for(;;)
{
x=(x1+x2)/2.0;
y=cal(x);
if(y>0)
{

if(y>=0.01)
{
x1=x;
y1=y;
}
else
{
break;
}
}
else
{
if(y<=-0.01)
{
x2=x;
y2=y;
}
else
{
break;
}
}
}

return 0;
}
追问
小黑屏上需要填什么才能继续?
追答
#include 
system("pause");
你想数出结果?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式