c++:1.输出一个5*5阶的矩阵,矩阵中的数据用二维数组来装载,矩阵的数据用随机数函数的方法产生; 2.输出原矩阵的转置矩阵,建议使用指针实现:原矩阵中各元素的行和列进行交换后,依次放在数组指针所指向的数组中。
时间: 2024-12-13 16:03:10 浏览: 45
在C++中,你可以通过以下几个步骤来实现这个需求:
1. 首先,创建一个5x5的二维数组,然后使用随机数生成器填充数据。
```cpp
#include <iostream>
#include <ctime> // 引入时间库,用于初始化随机数种子
#include <cstdlib> // 引入cstdlib库,包含rand()和srand()
const int ROWS = 5;
const int COLS = 5;
void generateRandomMatrix(int matrix[ROWS][COLS]) {
srand(time(0)); // 设置随机数种子
for (int i = 0; i < ROWS; ++i) {
for (int j = 0; j < COLS; ++j) {
matrix[i][j] = rand() % 100; // 生成0到99之间的随机整数
}
}
}
void printMatrix(int matrix[ROWS][COLS]) {
for (int i = 0; i < ROWS; ++i) {
for (int j = 0; j < COLS; ++j) {
std::cout << matrix[i][j] << " ";
}
std::cout << "\n";
}
}
int main() {
int matrix[ROWS][COLS];
generateRandomMatrix(matrix);
printMatrix(matrix);
return 0;
}
```
2. 然后,为了输出原矩阵的转置矩阵,我们可以创建一个新的二维数组,并使用指针交换原矩阵的行和列元素。
```cpp
void transposeMatrix(int matrix[ROWS][COLS], int transposedMatrix[COLS][ROWS]) {
for (int i = 0; i < ROWS; ++i) {
for (int j = 0; j < COLS; ++j) {
transposedMatrix[j][i] = matrix[i][j]; // 交换行列
}
}
}
void printTransposedMatrix(int transposedMatrix[COLS][ROWS]) {
for (int i = 0; i < COLS; ++i) {
for (int j = 0; j < ROWS; ++j) {
std::cout << transposedMatrix[i][j] << " ";
}
std::cout << "\n";
}
}
// 在main()函数中添加以下内容
int transposed[COLS][ROWS];
transposeMatrix(matrix, transposed);
printTransposedMatrix(transposed);
```
运行此程序,你会看到原始矩阵及其转置矩阵。
阅读全文