C++ 为什么我的号码不正确?

C++ 为什么我的号码不正确?,c++,arrays,C++,Arrays,我正在尝试编写一个简单的程序,解决需要多少个框来确保生成的每个数字都落在一个框中。一、 但是,我对连续数字和方框总数的总和所吐出的一些数字有一些严重的问题: #include <iostream> #include <stdlib.h> #include <stdio.h> #include <time.h> using namespace std; void taskOne(int x, int items[], int numberOfIte

我正在尝试编写一个简单的程序,解决需要多少个框来确保生成的每个数字都落在一个框中。一、 但是,我对连续数字和方框总数的总和所吐出的一些数字有一些严重的问题:

#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;
}
#包括
#包括
#包括
#包括
使用名称空间std;
void taskOne(int x,int items[],int numberOfItems);
int main(){
srand(时间(空));
国际箱容量;
国际项目数;
库特
项目数量;
int items[numberOfItems];
库特容量;
对于(int i=0;i<(sizeof(items)/sizeof(items[0]);i++){
项目[i]=(rand()%boxCapacity)+1;

请不要使用
std::vector
而不是数组你既不初始化
sumOfItemsInBox
也不初始化
numberofbox
。它们的初始值基本上是随机的。从一些小而简单的、工作完美的东西开始,然后构建。如果你一次编写大量代码而不进行测试,你就会失败从上面的问题中,有一个相关的注释:如果你打算解决这个问题(a)以获得最佳的解决方案,那么实际问题的重要性一点也不直观。如果你决定编写一个完整的算法,请准备处理一些数字。框的数量应该是(sumOfItemsInBox/boxCapacity),如果(sumOfItemsInBox%boxCapacity==0)否则(sumOfItemsInBox/box容量)+1。