21xrx.com
2024-12-22 20:04:43 Sunday
登录
文章检索 我的文章 写文章
C++ 实现计算二维数组主副对角线之和
2023-07-13 02:46:52 深夜i     --     --
C++ 二维数组 主对角线 副对角线

在程序设计中,二维数组是一个非常常见的数据结构,其可以用于存储矩阵、图像等二维数据。在实际应用中,我们常常需要对二维数组进行各种操作,例如计算主副对角线的和。本文介绍如何使用 C++ 实现计算二维数组主副对角线之和。

首先,我们需要定义一个二维数组,并初始化其元素值。假设我们的二维数组为一个 n 行 m 列的矩阵,可以使用以下代码定义和初始化:


const int n = 3, m = 3;

int a[n][m] = {

   3,

   5,

  7

};

接着,我们使用两个变量 `sum1` 和 `sum2` 来分别存储主对角线和副对角线的和。主对角线的和为左上角到右下角的对角线的所有元素之和,而副对角线的和为右上角到左下角的对角线的所有元素之和。我们可以使用循环语句分别计算这两个对角线的和:


int sum1 = 0, sum2 = 0;

for (int i = 0; i < n; i++) {

  sum1 += a[i][i];

  sum2 += a[i][m - i - 1];

}

在循环中,我们先使用 `sum1 += a[i][i]` 计算主对角线的和,`a[i][i]` 表示第 i 行第 i 列的元素。然后使用 `sum2 += a[i][m - i - 1]` 计算副对角线的和,`a[i][m - i - 1]` 表示第 i 行倒数第 i + 1 列的元素。

最后,我们输出主副对角线的和即可:


cout << "主对角线之和为:" << sum1 << endl;

cout << "副对角线之和为:" << sum2 << endl;

完整代码如下:


#include <iostream>

using namespace std;

int main() {

  const int n = 3, m = 3;

  int a[n][m] = {

    1,

     5,

    7

  };

  int sum1 = 0, sum2 = 0;

  for (int i = 0; i < n; i++) {

    sum1 += a[i][i];

    sum2 += a[i][m - i - 1];

  }

  cout << "主对角线之和为:" << sum1 << endl;

  cout << "副对角线之和为:" << sum2 << endl;

  return 0;

}

至此,我们使用 C++ 成功地实现了计算二维数组主副对角线之和的功能。这个简单的程序对于理解二维数组的使用和循环语句的运用都有很好的帮助作用。希望读者可以根据自己的实际需要,进一步扩展和优化这个程序。

  
  

评论区

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