рекурсия — рекурсивная функция, которая вычисляет сумму n целых чисел переполнение стека

Я должен сделать рекурсивную функцию, которая будет вычислять сумму первых 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 неразрешенная внешность

0

Решение

Ваша переменная array никогда не определяется нигде и int array[]; неверный синтаксис (но по какой-то причине ваш компилятор рассматривает его как extern декларация или что-то). Измените неверный синтаксис, чтобы определить его:

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

Другие решения

Мои психические навыки отладки говорят мне, что неопределенный внешний символ arrayпотому что вы никогда не давали ему размер или значения.

Поскольку это массив без размера, он рассматривается как внешнее объявление, а не как определение. Если вы инициализируете массив, он должен скомпилировать и связать.

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

По вопросам рекламы [email protected]