用C++编写一个矩阵转置的函数,矩阵的行'列数在程序中由用户输入。
时间: 2023-09-21 13:06:28 浏览: 263
### 回答1:
好的,以下是用C++编写矩阵转置函数的示例代码:
```cpp
#include <iostream>
using namespace std;
void matrixTranspose(int matrix[][100], int row, int col) {
int transposed[col][row];
for(int i = 0; i < col; i++) {
for(int j = 0; j < row; j++) {
transposed[i][j] = matrix[j][i];
}
}
cout << "转置后的矩阵为:" << endl;
for(int i = 0; i < col; i++) {
for(int j = 0; j < row; j++) {
cout << transposed[i][j] << " ";
}
cout << endl;
}
}
int main() {
int matrix[100][100];
int row, col;
cout << "请输入矩阵的行数和列数:" << endl;
cin >> row >> col;
cout << "请输入矩阵的元素:" << endl;
for(int i = 0; i < row; i++) {
for(int j = 0; j < col; j++) {
cin >> matrix[i][j];
}
}
matrixTranspose(matrix, row, col);
return 0;
}
```
这个函数接收一个二维整数数组、矩阵的行数和列数作为参数,然后将矩阵转置,并输出转置后的矩阵。在这个示例中,我们假设矩阵的最大行列数为100。用户可以根据自己的需要输入具体的行列数和矩阵元素。
### 回答2:
矩阵转置是将矩阵的行变为列,列变为行。编写一个矩阵转置的函数,需要先从用户获取矩阵的行数和列数信息,然后输入矩阵的元素,最终输出转置后的矩阵。
下面是使用C++编写的一个矩阵转置的函数示例:
```cpp
#include <iostream>
using namespace std;
// 矩阵转置函数
void matrixTranspose(int** matrix, int rows, int cols) {
// 创建转置后的矩阵
int** transpose = new int*[cols];
for (int i = 0; i < cols; i++) {
transpose[i] = new int[rows];
}
// 进行矩阵转置
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
transpose[j][i] = matrix[i][j];
}
}
// 输出转置后的矩阵
cout << "转置后的矩阵:" << endl;
for (int i = 0; i < cols; i++) {
for (int j = 0; j < rows; j++) {
cout << transpose[i][j] << " ";
}
cout << endl;
}
// 释放内存
for (int i = 0; i < cols; i++) {
delete[] transpose[i];
}
delete[] transpose;
}
int main() {
int rows, cols;
cout << "请输入矩阵的行数:";
cin >> rows;
cout << "请输入矩阵的列数:";
cin >> cols;
// 创建矩阵
int** matrix = new int*[rows];
for (int i = 0; i < rows; i++) {
matrix[i] = new int[cols];
}
// 输入矩阵的元素
cout << "请输入矩阵的元素:" << endl;
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
cin >> matrix[i][j];
}
}
// 调用矩阵转置函数
matrixTranspose(matrix, rows, cols);
// 释放内存
for (int i = 0; i < rows; i++) {
delete[] matrix[i];
}
delete[] matrix;
return 0;
}
```
以上就是一个用C++编写的矩阵转置的函数的示例,用户需要输入矩阵的行数和列数,并逐个输入矩阵的元素,程序将输出转置后的矩阵。
### 回答3:
下面是一个用C++编写的矩阵转置函数的示例代码:
```cpp
#include <iostream>
using namespace std;
// 函数:矩阵转置
void transposeMatrix(int** matrix, int rows, int cols) {
int** transposedMatrix = new int*[cols]; // 创建新的矩阵存放转置后的结果
for (int i = 0; i < cols; i++) {
transposedMatrix[i] = new int[rows];
for (int j = 0; j < rows; j++) {
transposedMatrix[i][j] = matrix[j][i]; // 将原矩阵的每个元素按行列交换后赋给转置矩阵
}
}
// 输出转置后的矩阵
cout << "转置后的矩阵为:" << endl;
for (int i = 0; i < cols; i++) {
for (int j = 0; j < rows; j++) {
cout << transposedMatrix[i][j] << " ";
}
cout << endl;
}
// 释放内存
for (int i = 0; i < cols; i++) {
delete[] transposedMatrix[i];
}
delete[] transposedMatrix;
}
int main() {
int rows, cols;
cout << "请输入矩阵的行数:";
cin >> rows;
cout << "请输入矩阵的列数:";
cin >> cols;
int** matrix = new int*[rows]; // 创建矩阵
for (int i = 0; i < rows; i++) {
matrix[i] = new int[cols];
for (int j = 0; j < cols; j++) {
cout << "请输入矩阵的第" << i + 1 << "行第" << j + 1 << "列的元素:";
cin >> matrix[i][j]; // 用户输入矩阵元素
}
}
transposeMatrix(matrix, rows, cols); // 调用矩阵转置函数
// 释放内存
for (int i = 0; i < rows; i++) {
delete[] matrix[i];
}
delete[] matrix;
return 0;
}
```
用户在程序中先输入矩阵的行数和列数,然后按照提示依次输入矩阵的每个元素,程序将输出转置后的矩阵。该程序首先根据用户输入创建一个矩阵,然后定义一个转置矩阵,遍历原矩阵的每个元素,按行列交换后存入转置矩阵。最后,将转置矩阵输出,并释放内存。
阅读全文