为什么我的号码不正确?

时间:2014-04-01 03:38:31

标签: c++ arrays

我正在尝试编写一个简单的程序来解决您需要多少个盒子,以确保每个生成的数字都放在一个盒子里。但是,我的一些数字出现了一些严重的问题,这些数字是通过我对连续数字和总箱数的总结而吐出来的:

#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,最大我生成的数字。

我猜测问题是我指向一个位置并使用它而不是值,但我真的不知道如何/为什么/我实际指向的是什么。

0 个答案:

没有答案