проблема с вашим кодом заключается в том, что вы можете выполнять только присваивание, указанное ниже в объявлении переменной, т. Е. Вы можете выполнять множественное присваивание только при объявлении массива.
array[NUM_REVIEWERS][NUM_MOVIES] =
{ {3, 1, 5, 2, 1, 5 },
{4, 2, 1, 4, 2, 4 },//the beginning of this row is where I get the error
{3, 1, 2, 4, 4, 1 },
{5, 1, 4, 2, 4, 2 } };
In В вашем случае переменная array
уже объявлена, поэтому единственный способ присвоить значения различным индексам - это итерация или прямое присвоение значения каждой позиции.
Назначение, которое вы пытаетесь выполнить, работает только в том случае, если это было примерно так:
int array[NUM_REVIEWERS][NUM_MOVIES] =
{ {3, 1, 5, 2, 1, 5 },
{4, 2, 1, 4, 2, 4 },//the beginning of this row is where I get the error
{3, 1, 2, 4, 4, 1 },
{5, 1, 4, 2, 4, 2 } };
В объявлении переменной.
Если вы все еще хотите использовать функцию void initialRatings(int array[][NUM_MOVIES])
, вот одна альтернатива.
void initialRatings(int array[NUM_REVIEWERS][NUM_MOVIES])
{
array[0][0] = 3;
array[0][1] = 1;
array[0][2] = 5;
array[0][3] = 2;
array[0][4] = 1;
array[0][5] = 5;
array[1][0] = 4;
array[1][1] = 2;
array[1][2] = 1;
array[1][3] = 4;
array[1][4] = 2;
array[1][5] = 4;
//... Do the same for the other rows
}
А если вы хотите увидеть результат после вызова функции initialRatings
, выведите значения каждой позиции в консоль.
int main()
{
// Variable declarations
int someArray[NUM_REVIEWERS][NUM_MOVIES]; // Ratings for reviewers
initialRatings(someArray); //function call with actual argument passing in the array and the number of rows
for (int row = 0; row < NUM_REVIEWERS; row++)
{
for (int column = 0; column < NUM_MOVIES; column++)
{
cout << someArray[row][column] << " "; // print the array value and a space to separate
// the values in each column
}
cout << endl; // add line break for each row
}
return 0;
}