我必须创建一个递归函数,它将计算至少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 :(得分: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 };