我知道我的代码还没有完成但我没有要求它完成。它应该输入由一只一周的3只猴子吃掉的食物和其他东西。但我遇到了麻烦。当我把cin放在poundsEaten函数中时,它给了我一个错误(错误:没有运算符“<<”匹配这些操作数)。我没有正确传递数组是为什么它不工作?谢谢你的帮助
#include <iomanip>
#include <iostream>
using namespace std;
//Global Constants
const int NUM_MONKEYS = 3;
const int DAYS = 7;
//Prototypes
void poundsEaten(const double[][DAYS],int, int);
void averageEaten();
void least();
void most();
int main()
{
//const int NUM_MONKEYS = 3;
//const int DAYS = 7;
double foodEaten[NUM_MONKEYS][DAYS]; //Array with 3 rows, 7 columns
poundsEaten(foodEaten, NUM_MONKEYS, DAYS);
system("pause");
return 0;
}
void poundsEaten(const double array[][DAYS], int rows, int cols)
{
for(int index = 0; index < rows; index++)
{
for(int count = 0; count < DAYS; count++)
{
cout << "Pounds of food eaten on day " << (index + 1);
cout << " by monkey " << (count + 1);
cin >> array[index][count];
// Here is where i get the error
}
}
}
答案 0 :(得分:0)
您已将array
声明为包含const double
s。它们是不变的,所以你不能像对待cin >> array[index][count];
那样写信给他们。只需将参数声明更改为:
double array[][DAYS]
也许您应该考虑何时以及为什么要将变量声明为const
。
除了避免以后混淆之外,这里值得一提的是没有数组类型参数这样的东西。以上参数实际上转换为:
double (*array)[DAYS]
但是,您的代码已正确编写以便与此一起使用(您将row
的数量传递给函数。)
答案 1 :(得分:0)
你声明:
const double array[][DAYS],
但是,在poundsEaten
函数内,您要求用户输入信息以填充array
,这意味着array
不是const,因此,错误。从参数中删除const
限定符,以便可以通过用户输入更改array
。
void poundsEaten(double array[][DAYS], int rows, int cols)
顺便说一句:不要使用array
作为数组的变量名,使用其他名称进行良好练习。
同时,cols
功能中未使用poundsEaten
。