新手求教 为什么全局变量从函数中出来值没有变
新手求教 为什么全局变量从函数中出来值没有变程序如下
#include<iostream>
using namespace std;
int c,n;
int Max;
int w[15],p[15];
void dfs(int position,int Now_weight,int Now_value)
{
if(position<n)
{
dfs(position+1,Now_weight,Now_value);
Now_weight+=w[position];
if(Now_weight>c)
{
if(Now_value>Max)
Max=Now_value;
}
else
{
Now_value+=p[position];
dfs(position+1,Now_weight,Now_value);
}
}
else
{
if(Now_value>Max)
{
Max=Now_value;
}
}
}
int main()
{
int Max,a;
while(1)
{
cin>>n>>c;
if(n==0&&c==0) break;
Max=0;
for(a=0;a<n;a++)
{
cin>>w[a];
}
for(a=0;a<n;a++)
{
cin>>p[a];
}
dfs(0,0,0);
cout<<Max<<endl;
}
return 0;
}
0 1背包问题用递归做的。
调试完发现在函数中Max确实变为1了。结果输出Max还是0,为什么。。。