#include <iostream>
#include <iomanip>

using namespace std;

void transpose(double **matrix, int size, double **result)
{
    for (int i = 0; i < size; i++)
        for (int j = 0; j < size; j++)
            result[j][i] = matrix[i][j];
}

void print(double **matrix, int size)
{
    for (int i = 0; i < size; i++)
    {
        for (int j = 0; j < size; j++)
            cout << setw(2) << matrix[i][j] << ' ';
        cout << endl;
    }

    cout << endl;
}

int main()
{
    double **matrix, **result;
    int size = 4;

    matrix = new double*[size];
    result = new double*[size];

    int cnt = 1;

    for (int i = 0; i < size; i++)
    {
        matrix[i] = new double[size];
        result[i] = new double[size];

        for (int j = 0; j < size; j++)
            matrix[i][j] = cnt++;
    }

    transpose(matrix, size, result);

    print(matrix, size);
    print(result, size);
    
    return 0;
}