作业帮 > 综合 > 作业

C语言在区间[0,1]内用二分法求方程e^x+10x-2=0的近似根,误差不超过0.5*10^(-3),

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/05/15 13:32:13
C语言在区间[0,1]内用二分法求方程e^x+10x-2=0的近似根,误差不超过0.5*10^(-3),
#include
#include
#include
#include
float getvalue(float x)
{
return e^x+10x-2;
}
int main()
{
float a=0,b=1,c;
c=(a+b)/2;
while(fabs(getvalue(c))>0.5*10^(-3) && fabs(a-b)>0.5*10^(-3))
{
if(getvalue(c)*getvalue(b)
C语言在区间[0,1]内用二分法求方程e^x+10x-2=0的近似根,误差不超过0.5*10^(-3),
首先,你的手写格式和编程语言格式是不一致的.然后,你使用的自然对数底数e,也没有定义.其他的都是小问题.
#include <stdio.h>
#include <math.h>
#include <stdlib.h>

#define e 2.7182828//定义自然对数底数的值

float getvalue(float x)
{
    return pow(e,x)+10*x-2;
}
int main()
{
    float a=0,b=1,c;
    c=(a+b)/2;
    while(fabs(getvalue(c))>0.5*1e-3)//此处可以简单化
    {
        if(getvalue(c)*getvalue(b)<0)
            a=c;
        if(getvalue(a)*getvalue(c)<0)
            b=c;
        c=(a+b)/2;
    }
    printf("%0.3f\n",c);
    return 0;
}
我这边算出来的结果是0.091.