代码如下 ,是哪里逻辑出了错误?求助大神们解答一下,感谢啦
int foodbag(int x, int maxV, int maxW)
{
int i, j;
int value;
for (i = 0; i < x; i++)
{
for (j = 0; j < 3; j++)
{
std::cin >> value;
array[i][j] = value;
}
}
return process(array, 0, 0, 0, maxW, maxV, 0, x);
}
int process(int array[MAXSIZE][3], int i, int alreadyW, int alreadyV, int Wmaxsize, int Vmaxsize, int alreadyvalue, int num)
{
if (alreadyW > Wmaxsize || alreadyV > Vmaxsize)
{
return 0;
}
if (i == num)
{
return alreadyvalue;
}
return findmax(
process(array, i + 1, alreadyW + array[i][1], alreadyV + array[i][0], Wmaxsize, Vmaxsize, alreadyvalue + array[i][2], num),
process(array, i + 1, alreadyW, alreadyV, Wmaxsize, Vmaxsize, alreadyvalue, num));
}
int findmax(int a, int b)
{
if (a > b)
return a;
else
return b;
}
int main(void)
{
int res;
int maxW, maxV, x;
std::cin >> maxW >> maxV >> x;
res = foodbag(x, maxV, maxW);
std::cout << res;
}