【发布时间】:2019-02-21 00:18:48
【问题描述】:
我想在 VS Code 中编译以下代码,但我使用“代码运行器”获取此错误。我到处查找,但没有解决我的问题。
我想实现这个T(n) = 2T(n/2) + nlog(n)
q2.c
// b. T(n) = 2T(n/2) + nlog(n)
#include <stdio.h>
#include <math.h>
int func(double n)
{
return (2*func(n/2) + n*(log(n)));
}
int main()
{
double n, result;
printf("Enter the value of 'n' \n");
scanf("%lf",&n);
printf("Hey");
result = func(n);
printf("%lf \n",result);
printf("Hey");
return 0;
}
控制台:
user@user-H310M-DS2:~/Desktop/C programming/Assignments$ cd "/home/user/Desktop/C programming/Assignments/" && gcc q2.c -o q2 && "/home/user/Desktop/C programming/Assignments/"q2
/tmp/ccnNXN3L.o: In function `func':
q2.c:(.text+0x3a): undefined reference to `log'
collect2: error: ld returned 1 exit status
【问题讨论】:
-
你为什么使用 GCC 作为编译器,却在标题中声称你正在使用 Visual Studio?
-
@JonathanLeffler "Visual Studio" 和 "VSCode" 是两个不同的东西。一是IDE(包括编译器等),二是可扩展的编辑器。
-
@Yunnosch:哦!这很混乱!这可能部分解释了为什么提到 Code Runner,等等。哦,好吧,我活着,偶尔我会学习(其余时间我的大脑被琐事堵塞,无法再学习了)。希望下次能记住。
-
您确定要无限制地递归调用您的函数吗?
return (func(n/2) + n*(log(n))); -
不应该是
return (2*func(n/2) + n*(log(n)));吗?
标签: c