您cin
为变量f
赋值。 f
可能是这样的:
pow(5.957,-X*X*X*X)-cos(X*X) +20*sin(X*X)
或其他一些复杂的数学函数。我也试图直接声明它。
f = pow(5.957,-X*X*X*X)-cos(X*X) +20*sin(X*X);
std::cout << "Bisection method on function, f = " << f << " "<<std::endl;
输出在 MinGW 和 VS2010 上:
f = nan
如何让 cout 在屏幕上打印 f?
我这样声明f
double F(double X) { double f; f = pow(5.957,-X*X*X*X)-cos(X*X) +20*sin(X*X); return f; }
我基本上是在编写一个 C++ 程序来执行不同的数值方法来求函数的根:二分法、蒙特卡洛法、Newtwon 法等。这些都行得通,但我想在用户输入函数后向其显示该函数, 它只是显示为 NaN。
最佳答案
从表面上看,您正在尝试定义 f
作为一个实际数学函数(以直接的方式)。那绝对行不通。
但是如果你有一个字符串,那么f
将输出一个字符串,忽略数学函数。
请记住,与其他编程语言不同,C++ 非常...喜怒无常。
您不能将字符分配给 int
反之亦然。但是string
可以容纳任何东西,因为它只是一段文字。
尝试使用 getline
...等一下,我去拿我的书..
编辑: 好的。如果你使用 getline (cin, foo);
, 其中foo
定义为 string foo
你包括<string>
,这应该有效。那是您的编码最初的样子吗?
Edit2:您应该仍然可以使用 stream
从字符串来回转换...但我需要比我更有经验的人来确认这一点。
关于C++ cout 一个数学函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7465616/