c ++ cout一个数学函数

时间:2011-09-19 01:22:12

标签: c++ visual-c++

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?

我宣布了这样的

double F(double X) { double f; f =  pow(5.957,-X*X*X*X)-cos(X*X) +20*sin(X*X); return f; }

我基本上是在编写一个C ++程序来执行不同的数值方法来找到函数的根源:bisection,Monte Carlo,Newtwon的方法等。这些工作,但我想在用户输入后向用户显示该函数,它只是显示为NaN。

3 个答案:

答案 0 :(得分:2)

从它的外观来看,你试图将f定义为实际的数学函数(以直接的方式)。这肯定是行不通的。

但是如果你有一个字符串,那么f将输出一个字符串,忽略数学函数。

请记住,与其他编程语言不同,C ++非常......气质。

您不能将字符分配给int,反之亦然。但是string可以保存任何,因为它只是一段文字。

尝试使用getline ...等一下,我就去拿我的书..

编辑:好的。如果您使用getline (cin, foo);,其中foo定义为string foo,并且您包含<string>,那么这应该有效。那是你的编码最初的样子吗?

Edit2:您仍然可以使用stream来回转换字符串...但我需要比我更有经验的人来确认。< / p>

答案 1 :(得分:0)

您似乎在寻找代数系统。虽然这些事情可能存在,但它们相当罕见。您必须寻找一个以一般方式处理公式的库,在运行时将文本表示转换为可执行(或可解释)格式。

答案 2 :(得分:0)

X的值是多少?这个数字可能很大,以至于你得到一个过度(或不足)的流量错误,这可以解释为什么你得到NaN。

我建议您打印X并更新问题。