I’ve tried many time to pass the array to a function then do some calculation such as getting the total of the columns, the problem is I don’t know how to call the result form the function, usually I get errors.
this is just one code I’m trying to solve it from yesterday :
#include <iostream>
using namespace std;
//prototype
int get_total(int whatever[][2], int row);
int main ()
{
const int row=2;
const int col=3;
int marks[row][col];
// this is prompt the user to input the values
for (int i=0; i<row;i++)
{
for (int p=0; p<col; p++)
{
cin >> marks[i][p];
}
cout << endl;
}
// this is just display what the user input as a table
for (int x=0; x< row ; x++)
{
for (int y=0; y<col ; y++)
{
cout << marks[x][y] << " ";
}
cout << endl;
}
int sum;
// this is the most important thing I want to know,
// how to call the function :(
sum=get_total(marks,row);
return 0;
}
// to get the total of each columns
const int row=3;
// not sure if the declaration is correct or not :(
int get_total(int whatever[][2], int row)
{
for (int i=0; i < 2; i++)
{
for (int p=0; p < 3; p++)
int total=0;
//this line is completly wrong, How can I calculate the total of columns?
total+=get_total[2][p];
}
// do we write return total ?
// I'm not sure because we need the total for each column
return total;
}
sorry for the mess, and I appreciate any help to explain passing the multidimensions arry to a function as parameter and how to call the function>
This means that
markshas typeint[2][3].You’ve however declared
get_totalto accept anint(*)[2].int[2][3]can decay toint(*)[3]but that is not compatible withint(*)[2], hence why you can’t passmarkstoget_total. You can instead declareget_totalto accept anint(*)[3]:If you instead decide to declare
get_totalto accept anint**or anint*, then you can’t legally passmarksto it in the former case, and you can’t legally iterate over the whole multidimensional array in the latter. Consider not using arrays, it’s simpler this way.