【发布时间】:2018-12-28 15:22:32
【问题描述】:
这段代码有什么作用?为什么它有两个返回值?
int MSum(int N){
if (N == 1)
return 1;
return N + MSum(N - 1);
}
我尝试编写 phollowing 程序来运行它。它编译得很好,但是运行时出错:
#include <stdio.h>
int MSum(int N);
int main(){
int n, o;
printf("Εισάγετε ακέραιο: ");
scanf("%d", &n);
o = MSum(n);
printf("%d", o);
return 0;
}
int MSum(int N){
if (N == 1)
return 1;
return N + MSum(N - 1);
}
我得到的错误是:
/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/Scrt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
collect2: error: ld returned 1 exit status
【问题讨论】:
-
你是如何编译这段代码的?
-
@dbush 同上。显示你的编译语句。
-
您的程序可以在我的系统上正确编译和执行。发帖前你摸过代码吗?它抱怨缺少
main()函数,但你有一个。您是否尝试过发布的代码?我只会在 printf() 调用中添加一个\n,但它是完全合法的代码,并且可以按假设工作。