C++ 计算n个整数之和C++;

C++ 计算n个整数之和C++;,c++,recursion,sum,C++,Recursion,Sum,我必须做一个递归函数,它将计算至少由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

我必须做一个递归函数,它将计算至少由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
#包括
使用名称空间std;
int n=0;
int数组[];
整数和(整数数组[],整数n);
int main()
{

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

int array[] = { 1, 2, 3, 4 }; // for example

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

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

int array[] = { 1, 1, 2, 3, 5, 8 };

这不是完整的错误消息,因为链接器还会告诉您哪些外部未解析。这是家庭作业吗?如果是,请使用
家庭作业
标记。错误消息的其余部分可能会有所帮助。
int array[]
本身不是无效语法;它仅在本例中无效,因为
数组的大小未知。
extern int-array[4];int-array[];
可以。