C++ 程序交换矩阵行

17 Mar 2025 | 4 分钟阅读

在数学和计算机科学的许多分支中,矩阵操作是必不可少的过程。矩阵中的行移位是一种经常执行的操作。它可以帮助重新排列数据和改进计算等等。

矩阵简介

由**行和列**排列的二维数字集合称为**矩阵**。它经常用于执行数学运算和表示数据。在传统矩阵中,列垂直排列,行水平排列。

例如,考虑 3*3 矩阵

算法:矩阵行交换

输入

  • 大小为 **M*N** 的 **2D** 矩阵。
  • 要交换,请使用行索引 row1 和 row2。

结果

  • 矩阵 mat,其中行 1 和 2 已交换。

步骤 1

  • 检查输入索引是否有效。
  • 确保行 1 和 2 在允许的范围之内,即 **0 到 M-1**(M 是矩阵中的行数)。

步骤 2

  • 交换行。
  • 创建一个名为 **temp** 的临时行或数组,以保存行 row1 的值**。**
  • 对于 0 到 N-1 之间的每个列 col(其中 N 是矩阵中的列数),执行以下操作
  • 将行 row1 的值分配给 **temp[col] = mat[row1][col]。**
  • 分配 **mat[row1][col] = mat[row2][col]** 以将数据从行 row2 复制到行 row1。
  • 分配 **mat[row2][col] = temp[col]** 以将 temp 中的值复制到行 row2**。**

步骤 3

  • 返回更新后的矩阵 mat。

伪代码

程序

让我们看一个 C++ 程序来交换矩阵的行

输出

C++ Program to Swap Rows of Matrix

代码解释

步骤 1

  • 添加任何所需的头文件。
  • 代码首先包含 C++ 标准库所需的头文件。涉及输入和输出的操作依赖于此头文件。

步骤 2

  • 之后,定义 **swapRows 函数**。
  • 可以使用 swapRows 方法切换矩阵的两个行。
  • 它需要两个行索引(row1 和 row2),它们指示要切换的行,以及一个大小为 3x3 的 2D 矩阵(matrix)。

步骤 3

  • 初始化 **主函数**。
  • 在主函数中声明并初始化一个 3x3 矩阵。此矩阵表示将要操作的数据。

步骤 4

  • 输入要交换的行号。
  • 当用户想要交换行 1 和 2 时,程序会要求他们输入这些数字。这些变量包含用户的输入。

步骤 5

  • 验证输入的行号。
  • 应用程序验证输入行号的有效性。在 3x3 矩阵中,有效行的范围是 0 到 2(包括 0 和 2),row1 和 row2 都必须在此范围内才被视为有效。

步骤 6

  • 调用 swapRows 函数。
  • 如果行号有效,则调用 **swapRows** 方法。此函数通过遍历列并临时存储和交换两个指定行的元素来交换行。

步骤 7

  • 显示修改后的矩阵。
  • 程序在翻转行后显示更新后的矩阵。它使用嵌套循环遍历矩阵的行和列,并打印每个元素。现在,用户将看到行交换过程的结果。

步骤 8

  • 处理无效行号。
  • 应用程序通知用户他们输入的行号无效,并要求他们提供 0 到 2 之间的行。

步骤 9

  • 返回 0 并结束程序。
  • 当主函数返回 0 时,程序结束,这表示程序已成功执行。