我正在尝试创建一个递归函数,该函数为数组返回元素偶数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;
}
}