将4 * 4 int数组转换为c中的2 * 2 int数组

时间:2014-01-22 15:19:32

标签: c arrays

我有一个4 * 4阵列 -

int arr[4][4] = {{1,2,3,4},
                 {5,6,7,8},
                 {9,10,11,12},
                 {13,14,15,16}};

希望将其转换为2 * 2数组 -

int final[2][2];

应该有

final[0][0] = (arr[0][0]+arr[0][1]+arr[1][0]+arr[1][1])/4;
final[0][1] = (arr[0][2]+arr[0][3]+arr[1][2]+arr[1][3])/4;

是否可以使用查找表从数组中提取值。

提前致谢

1 个答案:

答案 0 :(得分:1)

正如已经评论过的那样,你基本上都有这个,但仅仅是为了完整性:

for ( i=0; i<2; i++ )
  for ( j=0; j<2; j++ )
    final[i][j] = (arr[i*2][j*2]+arr[i*2][j*2+1]+arr[i*2+1][j*2]+arr[i*2+1][j*2+1])/4;