求助 我用C语言 实现0-1背包问题 但还没运行到main就有错,请指教

suixinpiaodang 2011-08-30 08:25:52
题目是:

有n种物品,每种只有一个。第i种物品体积为Vi,重量为Wi。选一些物品装到一个容量为C的背包,使得背包内物品在总体积不超过C的前提下重量尽量

大,1=<n=<100,1=<Vi=<C=<10000,1=<Wi=<1000000.

代码是:
#include<stdio.h>
#define max 101
int d[int i][int j]
{
int v[max],w[max],c,n;
for(int i=n;i>=1;i--)
for(int j=0;j<=c;j++)
{
d[i][j]=(i==n?0:d[i+1][j]);
if(j>=v[i]) d[i][j]>?=d[i+1][j-v[i]]+w[i];
}
}
int main()
{
printf("请输入背包的容量c");
scanf("%d",&c);
printf("请输入物品的种类n");
scanf("%d",&n);
printf("请输入物体的体积和重量")
for(i=0;i<n;i++)
{
scanf("%d%d",&v[i]&w[i]);

}
d[i][j];
}


错误是:\beibaowenti.cpp|3|error: expected primary-expression before 'int'|
\beibaowenti.cpp|3|error: expected ']' before 'int'|
||=== Build finished: 2 errors, 0 warnings ===|
请问是什么错误?
...全文
61 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
suixinpiaodang 2011-08-30
  • 打赏
  • 举报
回复
改成这样了:
#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++)
{
F(i,j)=(i==n?0:F(i+1,j));
if(j>=v[i]) F(i,j)=(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",F(i,j));
}



那请问这是什么错误?

\beibaowenti.cpp||In function 'int F(int, int)':|
\beibaowenti.cpp|9|error: lvalue required as left operand of assignment|
\beibaowenti.cpp|10|error: lvalue required as left operand of assignment|
||=== Build finished: 2 errors, 0 warnings ===|
suixinpiaodang 2011-08-30
  • 打赏
  • 举报
回复
我c语言才刚入门。。不好意思。。
哦哦 这样定义是荒唐的。。我先改改。。一会再请教
AnYidan 2011-08-30
  • 打赏
  • 举报
回复
lz 以前学的不是 c
zjj942339096 2011-08-30
  • 打赏
  • 举报
回复
我这几天也在思考这个问题

楼主说:还没运行到main就有错
int d[int i][int j]
这个是干什么的
报错啊,3个,不能运行
hxingz 2011-08-30
  • 打赏
  • 举报
回复
int d[int i][int j]
{
int v[max],w[max],c,n;
for(int i=n;i>=1;i--)
for(int j=0;j<=c;j++)
{
d[i][j]=(i==n?0:d[i+1][j]);
if(j>=v[i]) d[i][j]>?=d[i+1][j-v[i]]+w[i];
}
}
这代码,咋一看认为是定义了一个二维数组,再看认为可能是函数,可一想,啥都不是的嘛。
xunxun 2011-08-30
  • 打赏
  • 举报
回复
int d[int i][int j]
这是what啊

69,373

社区成员

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

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