21xrx.com
2024-09-20 00:50:17 Friday
登录
文章检索 我的文章 写文章
C++代码实现求解二维数组周边元素之和
2023-06-26 10:52:13 深夜i     --     --
C++ 二维数组 周边元素 元素之和 实现

二维数组是指由多个一维数组组成的数组,也称为矩阵。在程序中,经常需要对二维数组进行各种操作,如求和、求平均值等。本文将介绍如何使用C++代码实现求解二维数组周边元素之和。

首先,定义一个二维数组。可以在程序中手动输入二维数组的值,也可以使用随机数生成器生成一个随机的二维数组。以下是手动输入二维数组的代码:


const int ROW = 3;

const int COL = 3;

int arr[ROW][COL];

cout << "请输入二维数组的值:" << endl;

for (int i = 0; i < ROW; i++)

{

 for (int j = 0; j < COL; j++)

 {

  cin >> arr[i][j];

  }

}

接下来,使用循环语句遍历二维数组,计算周边元素之和。对于每个位置(i, j),其周边元素的下标为(i-1, j-1)、(i-1, j)、(i-1, j+1)、(i, j-1)、(i, j+1)、(i+1, j-1)、(i+1, j)、(i+1, j+1)。需要注意的是,数组下标不能超出数组的范围。以下是计算周边元素之和的代码:


int sum = 0;

for (int i = 0; i < ROW; i++)

{

 for (int j = 0; j < COL; j++)

 {

  if (i == 0) // 第一行

  {

   if (j == 0) // 左上角

    sum += arr[i][j+1] + arr[i+1][j] + arr[i+1][j+1];

   else if (j == COL-1) // 右上角

    sum += arr[i][j-1] + arr[i+1][j-1] + arr[i+1][j];

   else // 第一行非角

    sum += arr[i][j-1] + arr[i][j+1] + arr[i+1][j-1] + arr[i+1][j] + arr[i+1][j+1];

  }

  else if (i == ROW-1) // 最后一行

  {

   if (j == 0) // 左下角

    sum += arr[i-1][j] + arr[i-1][j+1] + arr[i][j+1];

   else if (j == COL-1) // 右下角

    sum += arr[i-1][j-1] + arr[i-1][j] + arr[i][j-1];

   else // 最后一行非角

    sum += arr[i-1][j-1] + arr[i-1][j] + arr[i-1][j+1] + arr[i][j-1] + arr[i][j+1];

  }

  else // 中间行

  {

   if (j == 0) // 左边非角

    sum += arr[i-1][j] + arr[i-1][j+1] + arr[i][j+1] + arr[i+1][j] + arr[i+1][j+1];

   else if (j == COL-1) // 右边非角

    sum += arr[i-1][j-1] + arr[i-1][j] + arr[i][j-1] + arr[i+1][j-1] + arr[i+1][j];

   else // 中间非角

    sum += arr[i-1][j-1] + arr[i-1][j] + arr[i-1][j+1] + arr[i][j-1] + arr[i][j+1] + arr[i+1][j-1] + arr[i+1][j] + arr[i+1][j+1];

  }

 }

}

cout << "周边元素之和为:" << sum << endl;

最后,输出周边元素之和。至此,我们就完成了求解二维数组周边元素之和的操作。

以上就是C++代码实现求解二维数组周边元素之和的全部内容。需要注意的是,对于特殊情况,如数组大小为1或二维数组所有元素值相等时,计算周边元素之和的方法需要特殊处理。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复