C++:每当我试图查看数组时,前两个输入都不会出现
它从第三个输入开始,而不是前两个输入。这导致我的整个阵列移动两个位置,在最后两个位置显示非常小的数字,如1.54831e-315。这是我第一次提交,如果我把事情搞砸了,我向你道歉。这是我写的所有东西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
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++)
....