C++ 程序:查找矩阵的转置


2023年2月9日, Learn eTutorial
1468

这是一个 C++ 程序,用于从用户那里获取一个矩阵并计算其转置。

矩阵的转置

矩阵的转置可以通过互换行和列来计算,即,行的元素作为列写入,列的元素作为行写入矩阵的转置。我们可以使用上标字母“T”来表示矩阵的转置。例如,如果“S”是矩阵,则“S”的转置表示为 S' 或 ST

如何查找矩阵的转置?

要查找矩阵的转置,请将行元素和列元素相互交换。

C++ 程序:查找矩阵的转置

在这个 C++ 程序中,用户输入行数和列数。将这些值读入变量 **row** 和 **column**。然后,提示用户输入矩阵的一些元素,并使用 `嵌套 for 循环` 将这些元素存储到数组 **a[10][10]** 中。

通过从初始位置到最终位置调用 **数组 a[i][j]** 来在屏幕上显示输入的矩阵。可以使用 `嵌套 for 循环` 来实现这一点。现在计算输入矩阵的转置。

为此,声明另一个名为 **aT[10][10]** 的数组。调用原始矩阵 **a[10][10]**,并使用另一个嵌套 for 循环将值互换存储到数组矩阵 **aT[10][10]** 中。**a[10][10]** 的行中的值存储在 **aT[10][10]** 的列中,即 **aT[j][i] = a[i][j]**。像上面显示原始矩阵一样,在屏幕上显示结果矩阵。

算法

步骤 1: 调用头文件 iostream

步骤 2: 使用 namespace std

步骤 3: 打开整数类型的主函数;`int main()`。

步骤 4: 声明整数类型变量 **row、column、i、j** 以及整数类型数组 **a[10][10]、aT[10][10]**

步骤 5: 要求用户输入行数和列数(1 到 10)。

步骤 6: 将数字读入变量 **row** 和 **column**;

步骤 7: 要求用户输入元素

步骤 8: 使用 `嵌套 for 循环` 将矩阵元素存储到数组 **a[10][10]** 中。

步骤 9: 在屏幕上显示矩阵 **a[10][10]**。

步骤 10: 计算矩阵 **a[i][j]** 的转置。**aT[j][i] = a[i][j]**

步骤 11: 在屏幕上显示转置矩阵。

步骤 12: 退出。
 

C++ 源代码

                                          #include <iostream>
using namespace std;

int main() {
   int a[10][10], aT[10][10], row, column, i, j;

   cout << "Enter rows and columns of matrix: ";
   cin >> row >> column;

   cout << "\nEnter elements of matrix: " << endl;

   // Storing matrix elements
   for (int i = 0; i < row; ++i) {
      for (int j = 0; j < column; ++j) {
         cout << "Enter element a" << i + 1 << j + 1 << ": ";
         cin >> a[i][j];
      }
   }

   // Printing the a matrix
   cout << "\nEntered Matrix: " << endl;
   for (int i = 0; i < row; ++i) {
      for (int j = 0; j < column; ++j) {
         cout << " " << a[i][j];
         if (j == column - 1)
            cout << endl << endl;
      }
   }

   // Computing transpose of the matrix
   for (int i = 0; i < row; ++i)
      for (int j = 0; j < column; ++j) {
         aT[j][i] = a[i][j];
      }

   // Printing the transpose
   cout << "\nTranspose of Matrix: " << endl;
   for (int i = 0; i < column; ++i)
      for (int j = 0; j < row; ++j) {
         cout << " " << aT[i][j];
         if (j == row - 1)
            cout << endl << endl;
      }

   return 0;
}
                                      

输出

Enter rows and columns of matrix: 2
4
Enter elements of matrix: 
Enter element a11: 1
Enter element a12: 2
Enter element a13: 3
Enter element a14: 4
Enter element a21: 5
Enter element a22: 6
Enter element a23: 7
Enter element a24: 8
Entered Matrix: 
 1 2 3 4

 5 6 7 8


Transpose of Matrix: 
 1 5

 2 6

 3 7

 4 8