gpt4 book ai didi

c - 这段代码的 sublime text 2 有什么问题?

转载 作者:太空宇宙 更新时间:2023-11-04 02:46:09 24 4
gpt4 key购买 nike

我在 sublime text 2 中写了这段 C 代码

#include <stdio.h>
int main()
{
int n, m;
scanf("%d", &n);
m = fib(n);
printf("%d", m);
return 0;
}
int fib(int n)
{
if(n == 0)
return 0;
else if( n == 1)
return 1;
else
return fib(n - 1) + fib( n - 2);
}

但是当我构建它时,控制台出现以下错误:

/home/shieh/program.c: In function ‘int main()’:
/home/shieh/program.c:6:14: error: ‘fib’ was not declared in this scope
m = fib(n);
^
[Finished in 0.0s with exit code 1]

但是,这个c代码可以被在线测试平台接受。谁能帮我解决这个问题?我现在很困惑。

最佳答案

您必须声明您的函数的before您调用它!否则 main 中的函数调用无法完成,因为在 compilation time 函数是未知的!(编译器从上到下!)所以试试这个:

#include <stdio.h>

int fib(int n) {

if(n == 0)
return 0;
else if( n == 1)
return 1;
else
return fib(n - 1) + fib( n - 2);
}

int main() {

int n, m;

scanf("%d", &n);
m = fib(n);
printf("%d", m);

return 0;
}

或者你在 main 之前制作一个像这样的函数原型(prototype):

#include <stdio.h>

int fib(int n);

int main() {

int n, m;

scanf("%d", &n);
m = fib(n);
printf("%d", m);

return 0;
}

int fib(int n) {

if(n == 0)
return 0;
else if( n == 1)
return 1;
else
return fib(n - 1) + fib( n - 2);
}

(我更喜欢带有原型(prototype)的 variante,这样你的 main 总是在你的文件的顶部,你可以看到这个文件包含哪个函数的原型(prototype)!)

关于c - 这段代码的 sublime text 2 有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27204141/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com