1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# include<stdio.h>
void knapsack(int n, float weight[], float profit[], float capacity) {
float x[20], tp = 0;
int i, j, u;
u = capacity;
for (i = 0; i < n; i++)
x[i] = 0.0;
for (i = 0; i < n; i++) {
if (weight[i] > u)
break;
else {
x[i] = 1.0;
tp = tp + profit[i];
u = u - weight[i];
}
}
if (i < n)
x[i] = u / weight[i];
tp = tp + (x[i] * profit[i]);
printf("\nThe result vector is:- "); for (i = 0; i < n; i++)
printf("\nMaximum profit is:- %f", tp
);
}
int main() {
float weight[20], profit[20], capacity;
int num, i, j;
float ratio[20], temp;
printf("\nEnter the no. of objects:- ");
printf("\nEnter the wts and profits of each object:- "); for (i = 0; i < num; i++) {
scanf("%f %f", &weight
[i
], &profit
[i
]); }
printf("\nEnter the capacityacity of knapsack:- ");
for (i = 0; i < num; i++) {
ratio[i] = profit[i] / weight[i];
}
for (i = 0; i < num; i++) {
for (j = i + 1; j < num; j++) {
if (ratio[i] < ratio[j]) {
temp = ratio[j];
ratio[j] = ratio[i];
ratio[i] = temp;
temp = weight[j];
weight[j] = weight[i];
weight[i] = temp;
temp = profit[j];
profit[j] = profit[i];
profit[i] = temp;
}
}
}
knapsack(num, weight, profit, capacity);
return(0);
}
MQoyCjMKNAo1CjYKNwo4CjkKMTAKMTEKMTIKMTMKMTQKMTUKMTYKMTcKMTgKMTkKMjAKMjEKMjIKMjMKMjQKMjUKMjYKMjcKMjgKMjkKMzAKMzEKMzIKMzMKMzQKMzUKMzYKMzcKMzgKMzkKNDAKNDEKNDIKNDMKNDQKNDUKNDYKNDcKNDgKNDkKNTAKNTEKNTIKNTMKNTQKNTUKNTYKNTcKNTgKNTkKNjAKNjEKNjIKNjMKNjQKNjUKNjYKNjcKNjgKNjkKNzAKNzEKNzIKNzMKNzQKIyBpbmNsdWRlPHN0ZGlvLmg+CiAKdm9pZCBrbmFwc2FjayhpbnQgbiwgZmxvYXQgd2VpZ2h0W10sIGZsb2F0IHByb2ZpdFtdLCBmbG9hdCBjYXBhY2l0eSkgewogICBmbG9hdCB4WzIwXSwgdHAgPSAwOwogICBpbnQgaSwgaiwgdTsKICAgdSA9IGNhcGFjaXR5OwogCiAgIGZvciAoaSA9IDA7IGkgPCBuOyBpKyspCiAgICAgIHhbaV0gPSAwLjA7CiAKICAgZm9yIChpID0gMDsgaSA8IG47IGkrKykgewogICAgICBpZiAod2VpZ2h0W2ldID4gdSkKICAgICAgICAgYnJlYWs7CiAgICAgIGVsc2UgewogICAgICAgICB4W2ldID0gMS4wOwogICAgICAgICB0cCA9IHRwICsgcHJvZml0W2ldOwogICAgICAgICB1ID0gdSAtIHdlaWdodFtpXTsKICAgICAgfQogICB9CiAKICAgaWYgKGkgPCBuKQogICAgICB4W2ldID0gdSAvIHdlaWdodFtpXTsKIAogICB0cCA9IHRwICsgKHhbaV0gKiBwcm9maXRbaV0pOwogCiAgIHByaW50ZigiXG5UaGUgcmVzdWx0IHZlY3RvciBpczotICIpOwogICBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKQogICAgICBwcmludGYoIiVmXHQiLCB4W2ldKTsKIAogICBwcmludGYoIlxuTWF4aW11bSBwcm9maXQgaXM6LSAlZiIsIHRwKTsKIAp9CiAKaW50IG1haW4oKSB7CiAgIGZsb2F0IHdlaWdodFsyMF0sIHByb2ZpdFsyMF0sIGNhcGFjaXR5OwogICBpbnQgbnVtLCBpLCBqOwogICBmbG9hdCByYXRpb1syMF0sIHRlbXA7CiAKICAgcHJpbnRmKCJcbkVudGVyIHRoZSBuby4gb2Ygb2JqZWN0czotICIpOwogICBzY2FuZigiJWQiLCAmbnVtKTsKIAogICBwcmludGYoIlxuRW50ZXIgdGhlIHd0cyBhbmQgcHJvZml0cyBvZiBlYWNoIG9iamVjdDotICIpOwogICBmb3IgKGkgPSAwOyBpIDwgbnVtOyBpKyspIHsKICAgICAgc2NhbmYoIiVmICVmIiwgJndlaWdodFtpXSwgJnByb2ZpdFtpXSk7CiAgIH0KIAogICBwcmludGYoIlxuRW50ZXIgdGhlIGNhcGFjaXR5YWNpdHkgb2Yga25hcHNhY2s6LSAiKTsKICAgc2NhbmYoIiVmIiwgJmNhcGFjaXR5KTsKIAogICBmb3IgKGkgPSAwOyBpIDwgbnVtOyBpKyspIHsKICAgICAgcmF0aW9baV0gPSBwcm9maXRbaV0gLyB3ZWlnaHRbaV07CiAgIH0KIAogICBmb3IgKGkgPSAwOyBpIDwgbnVtOyBpKyspIHsKICAgICAgZm9yIChqID0gaSArIDE7IGogPCBudW07IGorKykgewogICAgICAgICBpZiAocmF0aW9baV0gPCByYXRpb1tqXSkgewogICAgICAgICAgICB0ZW1wID0gcmF0aW9bal07CiAgICAgICAgICAgIHJhdGlvW2pdID0gcmF0aW9baV07CiAgICAgICAgICAgIHJhdGlvW2ldID0gdGVtcDsKIAogICAgICAgICAgICB0ZW1wID0gd2VpZ2h0W2pdOwogICAgICAgICAgICB3ZWlnaHRbal0gPSB3ZWlnaHRbaV07CiAgICAgICAgICAgIHdlaWdodFtpXSA9IHRlbXA7CiAKICAgICAgICAgICAgdGVtcCA9IHByb2ZpdFtqXTsKICAgICAgICAgICAgcHJvZml0W2pdID0gcHJvZml0W2ldOwogICAgICAgICAgICBwcm9maXRbaV0gPSB0ZW1wOwogICAgICAgICB9CiAgICAgIH0KICAgfQogCiAgIGtuYXBzYWNrKG51bSwgd2VpZ2h0LCBwcm9maXQsIGNhcGFjaXR5KTsKICAgcmV0dXJuKDApOwp9
prog.c:1:1: error: expected identifier or '(' before numeric constant
1
^
In file included from /usr/include/stdio.h:74:0,
from prog.c:75:
/usr/include/libio.h:306:3: error: unknown type name 'size_t'
size_t __pad5;
^
/usr/include/libio.h:310:67: error: 'size_t' undeclared here (not in a function)
char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)];
^
/usr/include/libio.h:338:62: error: expected declaration specifiers or '...' before 'size_t'
typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes);
^
/usr/include/libio.h:347:6: error: expected declaration specifiers or '...' before 'size_t'
size_t __n);
^
/usr/include/libio.h:469:19: error: expected '=', ',', ';', 'asm' or '__attribute__' before '_IO_sgetn'
extern _IO_size_t _IO_sgetn (_IO_FILE *, void *, _IO_size_t);
^
In file included from prog.c:75:0:
/usr/include/stdio.h:337:20: error: expected declaration specifiers or '...' before 'size_t'
int __modes, size_t __n) __THROW;
^
/usr/include/stdio.h:386:44: error: expected declaration specifiers or '...' before 'size_t'
extern int snprintf (char *__restrict __s, size_t __maxlen,
^
/usr/include/stdio.h:390:45: error: expected declaration specifiers or '...' before 'size_t'
extern int vsnprintf (char *__restrict __s, size_t __maxlen,
^
/usr/include/stdio.h:709:15: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'fread'
extern size_t fread (void *__restrict __ptr, size_t __size,
^
/usr/include/stdio.h:715:15: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'fwrite'
extern size_t fwrite (const void *__restrict __ptr, size_t __size,
^
prog.c: In function 'knapsack':
prog.c:79:11: warning: unused variable 'j' [-Wunused-variable]
int i, j, u;
^