C/C++

Помогите с программой

Дана целочисленная квадратная матрица размером n*m. Написать программу, формирующую два одномерных массива. В один переслать по строкам верхний треугольник матрицы, включая элементы главной диагонали, в другой – нижний треугольник. на с++
это изи, щас пара начнется, и я на ноутбуке быстро сделаю
Valeriy Д
1 676
Лучший ответ
Алексей Смокотин во сколько пара начинается?
Алексей Смокотин жду, спасибо заранее
#include <iostream>
#include <random>
#include <iomanip>
using namespace std;
unsigned integer(const char* msg) {
cout << msg;
unsigned value;
cin >> value;
cin.ignore(cin.rdbuf()->in_avail());
return value;
}
int main() {
const auto tab = 3U;
uniform_int_distribution<> uid(10, 99);
mt19937 gen{ random_device()() };
auto n = integer(" n: ");
auto m = integer(" m: ");
puts("");
auto t = 0U;
auto b = 0U;
auto matrix = new int* [n];
for (auto i = 0U; i < n; ++i) {
matrix[i] = new int[m];
for (auto j = 0U; j < m; ++j) {
matrix[i][j] = uid(gen);
cout << setw(tab) << matrix[i][j];
i <= j ? ++t : ++b;
}
puts("");
}
puts("");
auto top = new int[t];
auto bottom = new int[b];
auto h = 0U;
auto k = 0U;
for (auto i = 0U; i < n; ++i) {
for (auto j = 0U; j < m; ++j) {
if (i <= j) {
top[h] = matrix[i][j];
++h;
} else {
bottom[k] = matrix[i][j];
++k;
}
}
}
for (auto i = 0U; i < h; ++i) cout << setw(tab) << top[i];
puts("\n");
delete[] top;
for (auto i = 0U; i < b; ++i) cout << setw(tab) << bottom[i];
puts("");
delete[] bottom;
for (auto i = 0U; i < n; ++i) delete[] matrix[i];
delete[] matrix;
system("pause > nul");
}
Юра Кудряшов
Юра Кудряшов
98 063
Опа, люди из тгу