C ++在运行时添加两个数组项和其他错误

时间:2016-11-16 09:32:00

标签: c++ arrays sum

当我编译并运行这个程序时,我得到了不同的错误,主要是关于函数的调用和数组的总和 - 我已经尝试自己修复它们但是每当我修复一个问题时我似乎永远无法修复它们随着更多的进来然后离开。

/*
Even Fibonacci numbers
Problem 2
Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be:

1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...

By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms.
*/

#include <iostream>
#include <string>

using namespace std;

int increaseArray(int array, int currentPointer, int maxNumber, int arraySize, bool stop, int total);

int main () {
  int arraySize = 2;
  int maxNumber = 4000000;
  int currentPointer = 1;
  int array[2] = {1, 2};
  int total = 0;
  bool stop = false;
  while (not stop) {
    increaseArray(array, currentPointer, maxNumber, arraySize, stop, total);
  }


}

int increaseArray(int array, int currentPointer, int maxNumber, int arraySize, bool stop, int total) {
  int newValue = array[currentPointer - 1] + array[currentPointer - 2];
  while (newValue < maxNumber) {
    arraySize++;
    int *array = new int[arraySize];
    array[arraySize] = newValue;
    if (newValue % 2 == 0) {
       total += newValue;
increaseArray(array, currentPointer, maxNumber, arraySize, stop, total);
}
  stop = true;
  return total;
  }

 };

以下是我遇到的错误: -

错误:没有匹配函数来调用'increaseArray' increaseArray(array,currentPointer,maxNumber,arraySize,stop,total); ^ ~~

注意:候选函数不可行:第一个参数没有从'int [2]'到'int'的已知转换 int increaseArray(int array,int currentPointer,int maxNumber,int arraySize,bool stop,int total); ^ 错误:下标值不是数组,指针或向量 int newValue = array [currentPointer - 1] + array [currentPointer - 2]; 〜^ ~~~~

错误:下标值不是数组,指针或向量 int newValue = array [currentPointer - 1] + array [currentPointer - 2]; 〜^ ~~~~

错误:没有匹配函数来调用'increaseArray' increaseArray(array,currentPointer,maxNumber,arraySize,stop,total); ^ ~~

注意:候选函数不可行:第一个参数没有从'int'到'int'的已知转换;用...取消引用 int increaseArray(int array,int currentPointer,int maxNumber,int arraySize,bool stop,int total){ ^ 产生了4个错误。

1 个答案:

答案 0 :(得分:0)

问题出在increaseArray函数的声明中。 您希望将整个数组作为参数传递,但是您声明第一个参数只是一个整数。 该问题的一个解决方案是: int increaseArray(int * array,....)。 我强烈建议您了解有关将数组传递给函数的更多信息。 一个好的起点是:https://www.tutorialspoint.com/cplusplus/cpp_passing_arrays_to_functions.htm 我希望有所帮助!