错误:类型的无效操作数' float'和' int'到二元'运算符^'

时间:2016-03-24 19:59:07

标签: c++ operands

我收到错误类型无效的操作数' float'和' int'到二元'运算符^'而且我不确定如何解决它

错误发生在函数f的最后一行

非常感谢任何帮助

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>


using namespace std;
float f(float x);

int main()
{

    float a;
    float b;
    int n;
    float h;
    float x;
    float area;

    cout << "Please input the first limit: ";
    cin >> a;
    cout << "Please input the second limit: ";
    cin >> b;
    cout << "How many rectangles do you want to use? ";
    cin >> n;

    h = (b-a)/n;

    area = (f(a)+f(b))/2;

    for (int i=1;i<n;i++) {
        area += f(a+i*h);
    }

    area = area*h;
    cout << "The area under the curve of f(x) = (2/sqrt(3.14))(exp(-x^2)) is ";
    cout << area;
}

float f(float x){
     return (exp(-x^2))(2/sqrt(3.14));
}

1 个答案:

答案 0 :(得分:2)

x的数据类型为float。您已将逻辑XOR运算符应用于它。 XOR需要整数操作数。

我怀疑你正在寻找一个指数。 C ++没有指数运算符。相反,尝试这样的事情:

float f(float x){
     return (exp(-(x*x)))*(2/sqrt(3.14));
}

我认为您的意思是将exp(-(x*x))乘以(2/sqrt(3.14),但我没有在那里看到乘法运算符。