Tôi đang cố gắng tạo một máy tính đơn giản trong C nhưng khi biên dịch gcc
cho tôi biết rằng tôi thiếu chức năng pow và floor. Chuyện gì vậy?Tham chiếu không xác định đối với `pow 'và` floor'
Code:
#include <stdio.h>
#include <math.h>
int fibo(int n);
int main() {
printf("Fib(4) = %d", fibo(4));
return 0;
}
int fibo(int n) {
double phi = 1.61803399;
return (int)(floor((float)(pow(phi, n)/sqrt(5)) + .5f));
}
Output:
[email protected]:~/work/c/fibo$ gcc fib.c -o fibo
/tmp/ccNSjm4q.o: In function `fibo':
fib.c:(.text+0x4a): undefined reference to `pow'
fib.c:(.text+0x68): undefined reference to `floor'
collect2: ld returned 1 exit status
Vì độ chính xác của dấu phẩy động không phải là vô hạn, điều này sẽ đưa ra câu trả lời sai cho các giá trị không quá lớn của 'n' – vonbrand