错误:无效后缀" x"浮动常数

时间:2017-07-13 07:59:36

标签: c

AttributeError

该程序似乎无法将#include <stdio.h> #include <conio.h> #include <math.h> #define ESP 0.0001 #define F(x) x^3-2.5x^2-1.8x+2.356 void main() { float x0,x1,x2,f1,f2,f0; int count=0; do { printf("\nEnter the value of x0: "); scanf("%f",&x0); }while(F(x0) > 0); do { printf("\nEnter the value of x1: "); scanf("%f",&x1); }while(F(x1) < 0); printf("\n__________________________________________________________\n"); printf("\n x0\t x1\t x2\t f0\t f1\t f2"); printf("\n__________________________________________________________\n"); do { f0=F(x0); f1=F(x1); x2=x0-((f0*(x1-x0))/(f1-f0)); f2=F(x2); printf("\n%f %f %f %f %f %f",x0,x1,x2,f0,f1,f2); if(f0*f2<0) { x1=x2; } else { x0 = x2; } }while(fabs(f2)>ESP); printf("\n__________________________________________________________\n"); printf("\n\nApp.root = %f",x2); getch(); } 视为功能,但当我使用#define F(x) x^3-2.5x^2-1.8x+2.356时,没有错误。

我试过#define F(x) 3*(x) - 1 - cos(x),没有运气。

1 个答案:

答案 0 :(得分:0)

  

F(x)x ^ 3-2.5x ^ 2-1.8x + 2.356

  1. ^不是C使​​用pow(),powf()函数中的幂运算符(但在这种情况下不需要它)
  2. 2.5x必须是2.5 * x - 买一本关于C的书
  3. 不要#define函数使它们成为“真正的”函数
  4. 不要在浮点表达式中使用双重文字
  5. float F(float x)
    {
      return x * x * x + 2.5f * x * x + 1.8f * x + 2.356f;
    }