如何计算位于矩阵左上角四分之一的元素的和


double CountSum(double **mat, int R, int C)
{
double sum = 0.0;
for(int i = 0; i < R / 2; i++)
{ 
for(int j = 0; j < C / 2; j++)
{ 
sum += mat[i][j];
}
}
return sum;
}

我这样做是正确的,还是哪里有错误?或者,如果你对如何将参数传递给函数有一些建议,请告诉我

假设RC分别是行数和列数,则此代码将不起作用。

如果是R = 2,则是(R - 1) / 2 = 0,因此不会执行外循环,因为i < 0总是false。

不要减去一,R / 2就足够了。然而,当RC不相等时,也会出现拐角情况。

关于参数:您可以将RC添加到参数列表中,而不是ij。CCD_ 13并分别通过。从当前的代码来看,它们似乎只是全局变量。CCD_ 14和CCD_。

代码:

double CountSum(double **mat, int R, int C)
{
double sum = 0.0;
for(int i = 0; i < R / 2; i++)
{ 
for(int j = 0; j < C / 2; j++)
{ 
sum += mat[i][j];
}
}
return sum;
}

这是正在工作的代码,我希望您了解如何使用它——给它传递一个适当的参数。作为矩阵的高度和宽度或维度的CCD_ 16和CCD_。注意,如果RC或两者都是奇数,那么你总是只得到较小部分的和,如果你想要较大的部分,你应该接受它,因此使用(R + 1) / 2而不是R / 2,类似的C

最新更新