devc++实现输入一个四行四列的矩阵将矩阵转置后输出
时间: 2024-12-13 12:20:26 浏览: 3
在Dev-C++中,你可以使用二维数组来表示矩阵,并通过简单的遍历和元素交换的方式来实现矩阵转置。下面是一个步骤的示例:
1. 首先,你需要包含必要的头文件,如`iostream`用于输入输出,以及`cstdlib`库中的函数`malloc`和`free`,用于动态内存分配。
```cpp
#include <iostream>
#include <cstdlib>
```
2. 定义一个二维字符数组来存储矩阵,并计算需要的内存大小。
```cpp
int main() {
const int ROWS = 4;
const int COLS = 4;
char** matrix = new char*[ROWS]; // 创建行指针数组
for (int i = 0; i < ROWS; i++) {
matrix[i] = new char[COLS]; // 分配每一行的内存
}
```
3. 接着,从用户那里获取矩阵的元素并存储到数组中。
```cpp
for (int i = 0; i < ROWS; ++i) {
for (int j = 0; j < COLS; ++j) {
std::cout << "请输入第 " << (i+1) << " 行第 " << (j+1) << " 列的元素: ";
std::cin >> matrix[i][j];
}
}
```
4. 然后,创建一个新的数组来存储转置后的矩阵,并交换原来矩阵的行和列。
```cpp
char** transposedMatrix = new char*[COLS]; // 新建列指针数组
for (int i = 0; i < COLS; i++) {
transposedMatrix[i] = new char[ROWS];
}
for (int i = 0; i < ROWS; ++i) {
for (int j = 0; j < COLS; ++j) {
transposedMatrix[j][i] = matrix[i][j]; // 交换行和列的索引
}
}
```
5. 最后,打印转置后的矩阵。
```cpp
std::cout << "转置后的矩阵:\n";
for (int i = 0; i < COLS; ++i) {
for (int j = 0; j < ROWS; ++j) {
std::cout << transposedMatrix[i][j] << " ";
}
std::cout << "\n";
}
```
6. 清理动态分配的内存。
```cpp
for (int i = 0; i < ROWS; i++) {
delete[] matrix[i];
}
delete[] matrix;
for (int i = 0; i < COLS; i++) {
delete[] transposedMatrix[i];
}
delete[] transposedMatrix;
return 0;
}
```
阅读全文