我收到错误类型无效的操作数' 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));
}
答案 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)
,但我没有在那里看到乘法运算符。