C:数学函数?

时间:2010-01-31 02:52:09

标签: c math visual-studio-2010

我需要使用哪个include语句来访问此C代码中的数学函数?

unsigned int fibonacci_closed(unsigned int n) {
 double term_number = (double) n;
 double golden_ratio = (1 + sqrt(5)) / 2;
 double numerator = pow(golden_ratio, term_number);
 return round(numerator/sqrt(5));
}

我尝试了#include <math.h>,但似乎没有这样做。

我正在使用Visual Studio 2010(Windows 7)。这是错误:

1>ClCompile:
1>  fibonacci_closed.c
1>c:\users\odp\documents\visual studio 2010\projects\fibonacci\fibonacci\fibonacci_closed.c(7): warning C4013: 'round' undefined; assuming extern returning int
1>fibonacci_closed.obj : error LNK2019: unresolved external symbol _round referenced in function _fibonacci_closed

2 个答案:

答案 0 :(得分:15)

对于Windows库,Round()中不存在

math.h。定义:

static inline double round(double val)
{    
    return floor(val + 0.5);
}

更新:在回复您的评论时,math.h中定义了sqrt()

答案 1 :(得分:3)

在C99标准中将Round添加到C中,编译器不支持。