求助 我用C语言 实现0-1背包问题 不知道是什么错误就有错,请指教

suixinpiaodang 2011-08-31 12:22:50
代码是:
#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 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",F(i,j));
}


错误是:
\beibaowenti.cpp||In function 'int F(int, int)':|
\beibaowenti.cpp|17|error: a function-definition is not allowed here before '{' token|
\beibaowenti.cpp|30|error: expected '}' at end of input|
||=== Build finished: 2 errors, 0 warnings ===|

...全文
93 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
suixinpiaodang 2011-08-31
  • 打赏
  • 举报
回复
谢谢。。
zsc_ericluo 2011-08-31
  • 打赏
  • 举报
回复
我粗略地扫了下:
1)函数最后少了一个大括号,未必是最后,总之是少了一个括号;
2)函数里面的c木有赋值,那你怎么做循环判断呢?你莫非是指望main函数里面的c?

至于语法上,逻辑上的就不细看鸟。。。 。。。
xunxun 2011-08-31
  • 打赏
  • 举报
回复
{}数量不匹配
Dan_M 2011-08-31
  • 打赏
  • 举报
回复
F() 函数少括号 } 。。。

69,381

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧