#include <iostream>
using namespace std;
class Matrix
{
int ** matrixInClass;
public:
void setMatrix(int rowAmount, int colAmount);
void changeRowAndColumn(int rowAmount, int colAmount);
};
//==============================================================
void Matrix::setMatrix(int rowAmount, int colAmount) // заполнение массива данными
{
matrixInClass = new int*[rowAmount]; // выделяем память для матрицы
for (int i = 0; i < rowAmount; i++)
{
matrixInClass[i] = new int[colAmount];
}
for (int i = 0; i < rowAmount; i++) // записываем значения в массив
{
cout << " | ";
for (int j = 0; j < colAmount; j++)
{
matrixInClass[i][j] = i + j;
cout << matrixInClass[i][j] << " ";
}
cout << " | " << endl;
}
}
//==============================================================
void Matrix::changeRowAndColumn(int rowAmount, int colAmount)
{
int** tempMatrix = new int*[colAmount]; // выделяем память для временной матрицы
for (int i = 0; i < colAmount; i++)
{
tempMatrix[i] = new int[rowAmount];
}
for (int i = 0; i < colAmount; i++) // копируем столбцы в строки, а строки в столбцы
{
for (int j = 0; j < rowAmount; j++)
{
tempMatrix[i][j] = matrixInClass[j][i];
}
cout << endl;
}
for (int i = 0; i < rowAmount; i++) // Освобождаем память перед выделением новой
{
delete[] matrixInClass[i];
}
delete[] matrixInClass;
matrixInClass = new int*[colAmount]; // выделяем новую память
for (int i = 0; i < colAmount; i++)
{
matrixInClass[i] = new int[rowAmount];
}
for (int i = 0; i < colAmount; i++) // копируем из временной матрицы
{
cout << "|";
for (int j = 0; j < rowAmount; j++)
{
matrixInClass[i][j] = tempMatrix[i][j];
cout << matrixInClass[i][j] << " ";
}
cout << "|" << endl;
}
for (int i = 0; i < colAmount; i++) // Освобождаем память временной матрицы
{
delete[] tempMatrix[i];
}
delete[] tempMatrix;
}
int main()
{
setlocale(LC_ALL, "rus");
int rowAmount;
int colAmount;
cout << "Введите количество строк двумерного массива: ";
cin >> rowAmount;
cout << "Введите количество столбцов двумерного массива: ";
cin >> colAmount;
Matrix Object;
Object.setMatrix(rowAmount, colAmount);
cout << "\nЗамена значений строк на значения столбцов: ";
Object.changeRowAndColumn(rowAmount, colAmount);
return 0;
}
#include
using namespace std;
class Matrix {
private:
int **matrix;
public:
void setData(int row, int col) {
matrix = new int* [row];
for (int i = 0; i < row; i++) {
matrix[i] = new int[col];
}
for (int i = 0; i < row; i++) {
cout << '\n';
for (int j = 0; j < col; j++) {
matrix[i][j] = 1 + rand() % 9;
cout << matrix[i][j] << '\t';
}
}
cout << "\n====================================================\n";
};
void getData(int row,int col) {
for (int i = 0; i < col; i++) {
cout << '\n';
for (int j = 0; j < row; j++) {
cout << matrix[j][i] << '\t';
}
}
for (int i = 0; i < row; i++) {
delete[]matrix[i];
}
delete[]matrix;
};
};
int main() {
Matrix a;
a.setData(3,6);
a.getData(3,6);
return 0;
}
Я початківець, і ось мій код:
#include
using namespace std;
class ArrayConverter{
public:
int numbers[7][3] = {
0,0,0,
0,0,0,
0,0,0,
0,0,0,
0,0,0,
0,0,0,
0,0,0
};
int convertedNumbers[3][7] = {
0,0,0,0,0,0,0,
0,0,0,0,0,0,0,
0,0,0,0,0,0,0
};
void SetRandomElements(){
for(int i = 0; i < 7; i++){
for(int j = 0; j < 3; j++){
numbers[i][j] = rand() % 11;
}
}
}
void ShowOriginalArray(){
for(int i = 0; i < 7; i++){
for(int j = 0; j < 3; j++){
cout << numbers[i][j] << " ";
}
cout << endl;
}
}
void ConvertColumnsToRows(){
for(int i = 0; i < 3; i++){
for(int j = 0; j < 7; j++){
convertedNumbers[i][j] = numbers[j][i];
}
}
}
void ShowConvertedArray(){
for(int i = 0; i < 3; i++){
for(int j = 0; j < 7; j++){
cout << convertedNumbers[i][j] << " ";
}
cout << endl;
}
}
ArrayConverter(){
SetRandomElements();
}
};
int main(){
ArrayConverter converter;
converter.ShowOriginalArray();
converter.ConvertColumnsToRows();
cout << endl;
converter.ShowConvertedArray();
return 0;
}