Я должен сделать рекурсивную функцию, которая будет вычислять сумму первых 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 неразрешенная внешность
Ваша переменная array
никогда не определяется нигде и int array[];
неверный синтаксис (но по какой-то причине ваш компилятор рассматривает его как extern
декларация или что-то). Измените неверный синтаксис, чтобы определить его:
int array[] = { 1, 2, 3, 4 }; // for example
Мои психические навыки отладки говорят мне, что неопределенный внешний символ array
потому что вы никогда не давали ему размер или значения.
Поскольку это массив без размера, он рассматривается как внешнее объявление, а не как определение. Если вы инициализируете массив, он должен скомпилировать и связать.
int array[] = { 1, 1, 2, 3, 5, 8 };