C++ Транспонировать квадратную матрицу

Дан двумерный массив размером n×n. Транспонируйте его и результат запишите в этот же массив (транспонированная матрица из исходной получается, если каждую строчку исходной матрицы записать в виде столбца в том же порядке). Вс массив использовать нельзя.

Ввод и вывод матрицы t уже написаны, необходимо только написать трнаспонирование матрицы t.

Входные данные

На первой строке входных данных задано натуральное число n≤500. В следующих n строках задано по n натуральных чисел — элементы массива.

Выходные данные

Выведите ответ на задачу.

Примеры

Ввод

3

1 2 3

4 5 6

7 8 9

Вывод:
1 4 7

2 5 8

3 6 9

using namespace std;

int main()
{
int n;
cin >> n;
vector > t(n, vector (n));
int i1 = 0, j1 = 0;
for (int i = 0; i < t.size(); ++i){
for (int j = 0; j < t[i].size(); ++j){
cin >> t[i][j];
}
}

необходимая часть кода

for (int i = 0; i < t.size(); ++i){
for (int j = 0; j < t[i].size(); ++j){
cout << t[i][j] << " ";
}
cout << endl;
}
return 0;
}

Sidoriva Sidoriva    1   20.03.2021 18:34    7

Ответы
MariaGraf MariaGraf  19.04.2021 18:38

Объяснение:

#include <iostream>

#include <vector>

using namespace std;

int main()

{

int N;

cin >> N;

vector<vector<int>> a(N,vector<int> (N,0));

for (int i = 0; i < N; i++)  

 for (int j = 0; j < N; j++)  

  cin>> a[i][j];

for (int i = 0; i < N; i++) {

 for (int j = i; j < N; j++)

  swap(a[j][i], a[i][j]);

}

cout << endl;

for (int i = 0; i < N; i++) {

 for (int j = 0; j < N; j++)

  cout << a[i][j] << " ";

 cout << endl;

}

return 0;

}

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика