C++:每当我试图查看数组时,前两个输入都不会出现

C++:每当我试图查看数组时,前两个输入都不会出现,c++,arrays,C++,Arrays,它从第三个输入开始,而不是前两个输入。这导致我的整个阵列移动两个位置,在最后两个位置显示非常小的数字,如1.54831e-315。这是我第一次提交,如果我把事情搞砸了,我向你道歉。这是我写的所有东西 const int ROWS = 3; const int COLS = 7; double inputFood(); void printFood(); void avgFood(); void leastFood(); void largestFood(); int ma

它从第三个输入开始,而不是前两个输入。这导致我的整个阵列移动两个位置,在最后两个位置显示非常小的数字,如1.54831e-315。这是我第一次提交,如果我把事情搞砸了,我向你道歉。这是我写的所有东西

const int ROWS = 3;  
const int COLS = 7;

double inputFood();  
void printFood();  
void avgFood();  
void leastFood();  
void largestFood();

int main()
{

    string day;
    double monkeys[ROWS][COLS];
    double avg, sum = 0, largest = monkeys[0][0], least = monkeys[0][0];

    inputFood();
    printFood();
    avgFood();
    leastFood();
    largestFood();



    return 0;
}

double inputFood()  
{
    string day;
    double monkeys[ROWS][COLS];

    for (int r = 0; r < ROWS; r++)
    {
        for (int c = 0; c < COLS; c++)
        {
            switch(c)
            {
                case 0: day = "Sun";
                    break;
                case 1: day = "Mon";
                    break;
                case 2: day = "Tue";
                    break;
                case 3: day = "Wed";
                    break;
                case 4: day = "Thu";
                    break;
                case 5: day = "Fri";
                    break;
                case 6: day = "Sat";
                    break;
                default: cout << "No corresponding day. " << endl;
            }

            cout << "Enter pounds of food eaten by monkey " << r + 1 << " on " 
                 << day << ": " << endl;
            cin >> monkeys[r][c];   

            if (monkeys[r][c] < 0)
            {
                cout << "A monkey cannot eat a negative amount of food. " << endl;
                cout << "Enter the correct pounds of food eaten by monkey " << r + 1
                     << " on " << day << ": " << endl;
                cin >> monkeys[r][c];
            }

        }
    }
}

void printFood()  
{
    double monkeys[ROWS][COLS];

    cout << "Monkey\tSun\tMon\tTue\tWed\tThu\tFri\tSat" << endl;
    cout << "-----------------------------------------------------------" << endl;
    for (int r = 0; r < 3; r++)
    {
        cout << "     " << r + 1;
        for (int c = 0; c < 7; c++)
        {
            cout <<"\t" << monkeys[r][c];
        }
        cout << endl;
    }
}
这是你的问题:

double inputFood()  
{
    string day;
    double monkeys[ROWS][COLS];
您已在函数内重新定义了一个数组,该数组在函数终止后显示。主函数中的数组保持不变

函数inputFood应该以monkey作为参数

<>在C或C++中,变量不是由零初始化的,它们保持了它们以前的值。如果你面对诸如X10^—315这样的疯狂数字,你认为变量还没有被你初始化。

更新

在主功能中传递猴子以输入食物:

inputFood(monkeys);
和变化:

double inputFood()  
{
    string day;
    double monkeys[ROWS][COLS];
    for (int r = 0; r < ROWS; r++)
    ....
进入:


很抱歉,如果我现在看起来不懂,但我该怎么做呢。二维数组让我有点困惑。
double inputFood(double monkeys[ROWS][COLS])
{
    string day;
    // remove monkeys here
    for (int r = 0; r < ROWS; r++)
    ....