0

我必须创建一个递归函数,该函数将计算至少 n 个整数的数组中第一个 n 整数的总和。我相信我已经完成了 cout 语句的功能,但是会导致错误。任何帮助,将不胜感激。

#include <iostream>
using namespace std;

int n = 0;
int array[];

int sum(int array[], int n);

int main()
{
    cout << sum(array, 4)<< endl;
    return 0;
}//end main

int sum(int array[], int n)
{
    if(n <= 0) 
    {
        return 0;
    }

    else
    {
        return array[0] + sum(array + 1, n-1);
    }
}// end Compute

这是错误:

致命错误 LNK1120:1 个未解决的外部问题

4

2 回答 2

2

您的变量array从未在任何地方定义并且int array[];不是有效的语法(但由于某种原因,您的编译器将其视为extern声明或其他东西)。更改无效语法以定义它:

int array[] = { 1, 2, 3, 4 }; // for example
于 2012-09-04T19:49:40.397 回答
0

我的心理调试技能告诉我,未定义的外部符号是array,因为您从未给它指定大小或值。

由于它是一个大小不一的数组,因此它被视为外部声明而不是定义。如果初始化数组,它应该编译和链接。

int array[] = { 1, 1, 2, 3, 5, 8 };
于 2012-09-04T20:00:56.927 回答