我需要使用哪个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
答案 0 :(得分:15)
Round()
中不存在 math.h
。定义:
static inline double round(double val)
{
return floor(val + 0.5);
}
更新:在回复您的评论时,math.h
中定义了sqrt()
答案 1 :(得分:3)
在C99标准中将Round添加到C中,编译器不支持。