求助 我用C语言 实现0-1背包问题 运行结果都是0 不知道是什么错误就有错,请指教
代码是:
#include<stdio.h>
#define max 101
int F(int i,int j)
{
int v[max],w[max],n,c;
for(int i=n;i>=1;i--){
for(int j=0;j<=c;j++){
if(i==n)
return 0;else
return F(i+1,j);
if(j>=v[i])
return F(i+1,j-v[i])+w[i];
}
}
}
int main()
{
int i,j,n,c,v[max],w[max];
printf("请输入背包的容量c: ");
scanf("%d",&c);
printf("请输入物品的种类n: ");
scanf("%d",&n);
printf("请输入物体的体积和重量: ");
for(i=0;i<n;i++)
{
scanf("%d%d",&v[i],&w[i]);
printf("%d\n",F(i,j));
}
}
结果是
请输入背包的容量c:20
请输入物品的种类n:5
请输入物体的体积和重量:1 3 2 4 3 5 4 6 5 7
结果是0
请问这是什么逻辑错误啊???