double CountSum(double **mat, int i, int j)
{
double sum = 0.0;
for(i = 0; i < (R-1) / 2; i )
{
for(j = 0; j < (C-1) / 2; j )
{
sum = mat[i][j];
}
}
return sum;
}
Am I correct do this, or where I have mistakes? Or if you have some piece of advice on how to pass parameters to function, please tell me about that
CodePudding user response:
Assuming R
and C
are number of rows and number of columns respectively, this code won't work.
If R = 2
then (R - 1) / 2 = 0
so the outer loop won't be executed, because i < 0
is always false.
Don't subtract one, R / 2
would be enough. There are corner cases though, when R
and C
aren't even.
About parameters: you can add R
and C
to parameter list instead of i
and j
. (double **mat, int R, int C)
and pass them respectively. From this current code, it looks like they are just global variables. i
and j
can be declared inside the function.
CodePudding user response:
First, why are you passing i and j in CountSum() ? You set it after , in for loop.
After that you should look your for loops when R = 1 or R = 2 you will not enter to the loop.
Finally in C/C when you pass array pointer you should pass two parameters more, this parameters are the dimensions of the array.