Чтобы транспонировать двумерный динамический массив, вам потребуется создать новый массив, который будет иметь количество строк равное количеству столбцов оригинального массива и количество столбцов равное количеству строк оригинального массива.
Ниже приведен пример кода для транспонирования двумерного динамического массива:
#include <iostream> #include <cstdlib> using namespace std; int main() { int rows; int cols; cout << "Enter rows: " << endl; cin >> rows; cout << "Enter cols: " << endl; cin >> cols; int **mas = new int* [rows]; for (int i = 0; i < rows; i++) { mas[i] = new int[cols]; } // Fill the array with random values for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { mas[i][j] = rand() % 40; } } // Print the original array cout << "Original Array:" << endl; for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { cout << mas[i][j] << "\t"; } cout << endl; } // Transpose the array int **transposed = new int* [cols]; for (int i = 0; i < cols; i++) { transposed[i] = new int[rows]; for (int j = 0; j < rows; j++) { transposed[i][j] = mas[j][i]; } } // Print the transposed array cout << "Transposed Array:" << endl; for (int i = 0; i < cols; i++) { for (int j = 0; j < rows; j++) { cout << transposed[i][j] << "\t"; } cout << endl; } // Free memory for (int i = 0; i < rows; i++) { delete[] mas[i]; } delete[] mas; for (int i = 0; i < cols; i++) { delete[] transposed[i]; } delete[] transposed; system("pause"); return 0; }
Этот код создает новый массив transposed, который будет содержать транспонированную версию оригинального массива. После вывода транспонированного массива освобождаются память для обоих массивов.
Чтобы транспонировать двумерный динамический массив, вам потребуется создать новый массив, который будет иметь количество строк равное количеству столбцов оригинального массива и количество столбцов равное количеству строк оригинального массива.
Ниже приведен пример кода для транспонирования двумерного динамического массива:
#include <iostream>#include <cstdlib>
using namespace std;
int main() {
int rows;
int cols;
cout << "Enter rows: " << endl;
cin >> rows;
cout << "Enter cols: " << endl;
cin >> cols;
int **mas = new int* [rows];
for (int i = 0; i < rows; i++) {
mas[i] = new int[cols];
}
// Fill the array with random values
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
mas[i][j] = rand() % 40;
}
}
// Print the original array
cout << "Original Array:" << endl;
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
cout << mas[i][j] << "\t";
}
cout << endl;
}
// Transpose the array
int **transposed = new int* [cols];
for (int i = 0; i < cols; i++) {
transposed[i] = new int[rows];
for (int j = 0; j < rows; j++) {
transposed[i][j] = mas[j][i];
}
}
// Print the transposed array
cout << "Transposed Array:" << endl;
for (int i = 0; i < cols; i++) {
for (int j = 0; j < rows; j++) {
cout << transposed[i][j] << "\t";
}
cout << endl;
}
// Free memory
for (int i = 0; i < rows; i++) {
delete[] mas[i];
}
delete[] mas;
for (int i = 0; i < cols; i++) {
delete[] transposed[i];
}
delete[] transposed;
system("pause");
return 0;
}
Этот код создает новый массив transposed, который будет содержать транспонированную версию оригинального массива. После вывода транспонированного массива освобождаются память для обоих массивов.