计算n个整数C ++之和的递归函数

时间:2012-09-04 19:46:57

标签: 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;
}//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个未解析的外部

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

我的通灵调试技巧告诉我,未定义的外部符号是array,因为你从来没有给它一个大小或值。

因为它是一个未经过大小处理的数组,所以它被视为extern声明而不是定义。如果你初始化数组,它应该编译和链接。

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