编写程序 1.键盘输入矩阵维度m和n 2.生成一个矩阵,矩阵元素取值随机,并打印该矩阵。 3.将该矩阵传递给一个函数,实现矩阵转置。 4.在主函数中输出转置后的结果。随机函数原型为 int rand();它产生一个0~65535的随机数
时间: 2024-10-19 16:07:18 浏览: 29
编写一个简单的C++程序,可以按照上述步骤完成任务:
```cpp
#include <iostream>
#include <vector>
#include <cstdlib> // 包含rand()函数
// 随机生成指定范围内的整数
int random_int(int min, int max) {
return min + static_cast<int>((max - min + 1) * rand() / RAND_MAX);
}
// 创建并打印矩阵
void create_matrix(int m, int n, std::vector<std::vector<int>>& matrix) {
for (int i = 0; i < m; ++i) {
std::vector<int> row(n);
for (int j = 0; j < n; ++j)
row[j] = random_int(0, 10); // 示例中元素取值范围0-10
matrix.push_back(row);
}
for (const auto& row : matrix)
for (int elem : row)
std::cout << elem << ' ';
std::cout << '\n';
}
// 矩阵转置
std::vector<std::vector<int>> transpose(const std::vector<std::vector<int>>& matrix) {
int m = matrix.size(), n = matrix[0].size();
std::vector<std::vector<int>> transposed(m, std::vector<int>(n));
for (int i = 0; i < m; ++i)
for (int j = 0; j < n; ++j)
transposed[i][j] = matrix[j][i];
return transposed;
}
int main() {
int m, n;
std::cout << "请输入矩阵的行数m和列数n: ";
std::cin >> m >> n;
std::vector<std::vector<int>> matrix(m, std::vector<int>(n)); // 初始化矩阵
create_matrix(m, n, matrix);
std::vector<std::vector<int>> transposed = transpose(matrix);
std::cout << "转置后的矩阵:\n";
for (const auto& row : transposed)
for (int elem : row)
std::cout << elem << ' ';
std::cout << '\n';
return 0;
}
```
阅读全文