编写C++程序:提示用户输入行数n生成n行5列的矩阵输出转置矩阵。 要求:用指针和动态内存分配实现矩阵元素可由用户输入或随机生成
#include
int main() { int n; cout << "请输入行数n:"; cin >> n;
// 动态内存分配
int **matrix = new int*[n];
for (int i = 0; i < n; i++) {
matrix[i] = new int[5];
}
// 用户输入或随机生成矩阵元素
srand(time(NULL));
cout << "请输入矩阵元素或输入0随机生成:\n";
for (int i = 0; i < n; i++) {
for (int j = 0; j < 5; j++) {
int temp;
cin >> temp;
if (temp == 0) {
matrix[i][j] = rand() % 100;
} else {
matrix[i][j] = temp;
}
}
}
// 输出原矩阵
cout << "原矩阵:\n";
for (int i = 0; i < n; i++) {
for (int j = 0; j < 5; j++) {
cout << matrix[i][j] << " ";
}
cout << endl;
}
// 转置矩阵
int **transpose = new int*[5];
for (int i = 0; i < 5; i++) {
transpose[i] = new int[n];
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < 5; j++) {
transpose[j][i] = matrix[i][j];
}
}
// 输出转置矩阵
cout << "转置矩阵:\n";
for (int i = 0; i < 5; i++) {
for (int j = 0; j < n; j++) {
cout << transpose[i][j] << " ";
}
cout << endl;
}
// 释放内存
for (int i = 0; i < n; i++) {
delete[] matrix[i];
}
delete[] matrix;
for (int i = 0; i < 5; i++) {
delete[] transpose[i];
}
delete[] transpose;
return 0;
}
原文地址: https://cveoy.top/t/topic/buBL 著作权归作者所有。请勿转载和采集!