仅计算二维数组中的第一个维度元素?

时间:2013-11-20 09:19:13

标签: c multidimensional-array

我有一个存储坐标(xy)int arr[3][3]的二维数组。如何只对数组中的一个维度进行计算?

如果我对 x坐标的平均值感兴趣,我会输入:

float sumX = (float) arr[0] + arr[1] + arr[3] / 3.0f;

当我这样做时,我收到错误invalid cast from type 'int*' to type 'float'。我怎能不允许这样做?

3 个答案:

答案 0 :(得分:1)

假设每行的第一个元素只包含x坐标,你应该这样做 -

float sumX = (arr[0][0] + arr[1][0] + arr[2][0]) / 3.0f;

arr[0][0]为您提供存储在数组第一行第一个元素中的值,arr[1][0]为您提供存储在数组第二行第一个元素中的值,依此类推。根据您的需要更改上面的表达。

答案 1 :(得分:1)

尝试:

float sumX = (float) (arr[0][0] + arr[1][0] + arr[2][0]) / 3.0f;

您需要使用括号对要操作的内容进行分组,您需要指定单个值而不是行。

答案 2 :(得分:-1)

在这种情况下将返回地址

float sumX = (float) arr[0] + arr[1] + arr[3] / 3.0f;

要返回值,请使用间接运算符

float sumX = (float) ( *arr[0] + *arr[1] + *arr[3] )/ 3.0f;