我正在尝试编写一个简单的程序来解决您需要多少个盒子,以确保每个生成的数字都放在一个盒子里。但是,我的一些数字出现了一些严重的问题,这些数字是通过我对连续数字和总箱数的总结而吐出来的:
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
using namespace std;
void taskOne(int x, int items[], int numberOfItems);
int main() {
srand(time(NULL));
int boxCapacity;
int numberOfItems;
cout
<< "Hello And Please Enter The Number Of Items You Would Like To Fit Into Boxes!"
<< endl;
cin >> numberOfItems;
int items[numberOfItems];
cout << "Please Enter The Maximum Weight The Boxes Can Hold" << endl;
cin >> boxCapacity;
for (int i = 0; i < (sizeof(items) / sizeof(items[0])); i++) {
items[i] = (rand() % boxCapacity) + 1;
cout << "Item Size: " << items[i] << endl;
}
cout << endl;
taskOne(boxCapacity, items, numberOfItems);
return 0;
}
void taskOne(int x, int items[], int numberOfItems) {
int boxCapacity = x;
int sumOfItemsInBox;
int numberOfBoxes;
for (int i = 0; i < numberOfItems; i++) {
cout << "Item Size: " << items[i] << endl;
sumOfItemsInBox += items[i];
cout << sumOfItemsInBox << endl;
if (items[i] <= boxCapacity && sumOfItemsInBox <= boxCapacity) {
}
else if (sumOfItemsInBox > boxCapacity) {
numberOfBoxes++;
}
}
cout << "Sum Of Items: " << sumOfItemsInBox << endl << "Box Capacity: "
<< boxCapacity << endl;
cout << "Number Of Boxes: " << numberOfBoxes;
}
例如,我刚刚进行了测试,看看出现了什么数字,物品总数是-2126044537,而箱数是32522,但是在这种情况下我应该拥有的最大箱数是5,最大我生成的数字。
我猜测问题是我指向一个位置并使用它而不是值,但我真的不知道如何/为什么/我实际指向的是什么。