gpt4 book ai didi

c++将二维数组传递给函数

转载 作者:太空宇宙 更新时间:2023-11-04 14:08:25 25 4
gpt4 key购买 nike

我知道我的代码还没有完成,但我并没有要求完成它。它应该输入 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
}
}
}

最佳答案

您已将 array 声明为包含 const double。它们是恒定的,因此您不能像尝试使用 cin >> array[index][count]; 那样写入它们。只需将参数声明更改为:

double array[][DAYS]

也许您应该考虑何时以及为何应将变量声明为 const

为了避免以后的混淆,这里值得一提的是,没有数组类型参数这样的东西。上面的参数实际上转化为:

double (*array)[DAYS]

但是,您的代码编写得恰到好处(您将 row 的数量传递给函数)。

关于c++将二维数组传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15908496/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com