使用递归的数组中偶数和奇数位之和的差。

时间:2018-09-27 12:41:45

标签: c++

我正在尝试创建一个递归函数,该函数为数组返回元素偶数sum,odd sum,差b / w偶数和奇数。

我创建了一个具有这3个值的对象,并已通过引用将其传递,语法没有错误,但是我遇到了运行时异常(运行窗口停止工作)

  #include < iostream >

  using namespace std;

class o_e_sum 
  {
  public:
    int e_sum;
    int o_sum;
    int diff;

  o_e_sum() 
  {
    e_sum = 0;
    o_sum = 0;
    diff = 0;
  }

 };
void fib(int*,int, o_e_sum& );
int main() 
 {
  int n;
  cin >> n;
  int * p = new int[n];

  for (int i = 0; i < n; i++)
  {
    cin >> * (p + i);
  }
  o_e_sum obj;
  fib(p, n, obj);
  cout << obj.diff;

}

void fib(int * n, int s, o_e_sum & ques) 
  {

  if (s == 1) 
   {

    ques.o_sum = * n;
    ques.diff = ques.e_sum - ques.o_sum;

   }
  if (s % 2 == 0) 
   {

    fib(n + 1, s - 1, ques);
    ques.e_sum = ques.e_sum + * n;
    ques.diff = ques.e_sum - ques.o_sum;

   } 
  else 
   {


    fib(n + 1, s - 1, ques);
    ques.o_sum = ques.o_sum + * n;
    ques.diff = ques.e_sum - ques.o_sum;

   }

}

0 个答案:

没有答案