我的问题:
我有一个物品和一个袋子的结构;
struct Item {
int value;
int weight;
};
struct Bag {
int maxWeight;
Item *items;
int maxItems;
int itemsHolding;
};
在我的主要我有这个数组:
int testValues[] = { 4, 11, 6, 2, 10, 4, 12, 6, 13, 7, 23 };
例如:
然后我有这一系列的物品
Item items[testValues[0]];
这个应该将所有值组织到对应项目中的函数:
void item_InitUsableItems(int *values, int nItems, Item *items) {
for (int i = 2; i < nItems + 2; i+=2) {
items[i-2].value = values[i];
items[i-2].weight = values[i+1];
}
}
调用函数:
item_InitUsableItems(testValues, testValues[0], items);
然后,我将所有项目打印到控制台上只是为了进行测试:
for (int i = 0; i < 4; i++){
printf("%d - %d\n", items[i].value, items[i].weight);
}
这给了我这样的结果:
6 - 2
-1231927808 - -1282274509
10 - 4
1666274963 - 22033
预期结果将是这样的:
6 - 2
10 - 4
12 - 6
13 - 7
我是C语言的新手,学习了大约一个星期!如果您发现其他不正确的地方,请告诉我!
void item_InitUsableItems(int *values, int nItems, Item *items) {
int j = 2;
for (int i = 0; i < nItems; i++) {
items[i].value = values[j];
j++;
items[i].weight = values[j];
j++;
}
}
这解决了我的问题。可能不是最漂亮的解决方案,但它可以工作!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句