回覆列表
  • 1 # 使用者2953413550839

    不知道exp代表什麼,我是按exp(x)完成的

    #include

    #include

    void main(void)

    {

    double x,x1,x2;

    double f,f1,f2;

    do

    {

    printf("請輸入區間[x1,x2]\n");

    scanf("%lf%lf",&x1,&x2);

    f1 = x1 + exp(x1);

    f2 = x2 + exp(x2);

    if (f1 * f2 > 0)

    {

    printf("\n該區間不存在根,請重新輸入\n");

    }

    } while (f1 * f2 > 0);/* 確保輸入的x1,x2使得f1,f2符號相反 */

    do

    {

    x = (x1 + x2) / 2;/* 求x1,x2的中點 */

    f = x + exp(x);

    if (f1 * f > 0)/* 當f與f1符號相同時 */

    {

    x1 = x;

    f1 = f;

    }

    else if (f2 * f > 0)/* 當f與f2符號相同時 */

    {

    x2 = x;

    f2 = f;

    }

    } while (fabs(f) > 1e-7);/* 判斷條件fabs(f)>1e-7的意思是f的值非常接近0(有誤差) */

    printf("x = %f\n",x);

  • 中秋節和大豐收的關聯?
  • 我媳婦兒一天到晚給我買鞋買衣褲,穿十年都夠了。我該怎麼說她才會不買?