코드 질문드립니다.
동이
질문 제목 : 코드가 오류가 나네요 .. 어디가 문제인지 알려주실분. . .
가능하시다면 .. 주석도 좀 부탁드리겠습니다.담을 수 있는 무게가 제한되어 있는 배낭을 가지고 보물섬에 들어갔다. 보물섬에는 수개의 보물이 있는데 각각의 가격과 무게를 알고 있다. 보물들은 쪼갤 수 없다. 배 낭에 담을 수 있는 최대 무게, 섬에 있는 보물의 총 개수, 각 보물의 가격, 각 보물의 무게가 주어질 때 최대 얼마치의 보물을 배낭에 담아 올 수 있는지 답하라. 라는 문제입니다.
질문 내용 :
#includestdio.h
int max(int a,int b){
return ab?a:b;}
int knapsack(int items,int weight[],int value[],int maxweight){
int dp[items+1][maxweight+1];
int iter,w;
for(iter=0;iter=maxweight;iter++) {
dp[0][iter]=0;
}
for(iter=0;iter=items;iter++) {
dp[iter][0]=0;
}
for(iter=1;iter=items;iter++) {
for(w=0;w=maxweight;w++) {
dp[iter][w] = dp[iter-1][w];
if(w-weight[iter] =0) {
dp[iter][w] = max(dp[iter][w] , dp[iter-1][w-weight[iter]]+value[iter]);
}
}
} return dp[items][maxweight];}
int main(){
int items;
scanf(%d ,&items);
int weight[items+1],value[items+1];
int iter;
for(iter=1;iter=items;iter++) {
scanf(%d%d,&weight[iter],&value[iter]);
}
int maxweight;
scanf(%d,&maxweight);
printf(max value attained can be %d\n,knapsack(items,weight,value,maxweight));
}
두껍게 칠한 부분에서 오류가 납니다
-
연자두
저정도면 싹갈아엎어야겠네요 동적할당으로 포인터배열을 써야하니깐ㅋ
-
철죽
C99스타일의 코드입니다. 컴파일할때 c99지원하는 컴파일러를 쓰시면 컴파일됩니다.
비주얼스튜디오는 c99가 지원안되고 윈도우에서는 dev-c++가 C99를 지원하는걸로 알고있습니다.
아 그리고 c++가 아닌 c로 컴파일하셔야 합니다 -
갈매빛
죄송합니다 .ㅠㅠ 혹시 동적배열로 유사코드좀 적어봐주심안되나용 ?ㅠㅠ ?
-
초롬
변수가지고 방법을 찾기보다는 배열 자체를 동적 배열로 구성하심이 올바른줄 아뢰옵니다
-
소율
ㅠ.ㅠ 배열값 변수만 수정좀 도와주시면 안되나요
-
어른처럼
상수를 써야 합니다.
-
큰모듬
롤롤롤롤
-
사람
입력받은 items의 값을쓰니깐 정수값 아닌가요 ...??
-
봄
배열의 개수로는 정수 상수를 사용해야 합니다.