C/C++

Ввести двумерный массив A(n x m)

Ввести двумерный массив AN M . Каждую вторую строку в массиве
заменить остатками от деления её элементов на 2. Массив вывести до и после
преобразования.
 #include  

using namespace std;

template
T* create(const size_t n) {
return new(nothrow) T[n];
}

template
void destroy(T* box) {
if (box != nullptr) {
delete[] box;
box = nullptr;
}
}

template
T** create(const size_t n, const size_t m) {
auto matrix = new(nothrow) T* [n];
if (matrix != nullptr) {
for (size_t i = 0; i < n; ++i) {
matrix[i] = create(m);
if (matrix[i] == nullptr) {
for (size_t j = 0; j < i; ++j) destroy(matrix[i]);
delete[] matrix;
matrix = nullptr;
break;
}
}
}
return matrix;
}

template
T** destroy(T** matrix, const size_t n) {
if (matrix != nullptr) {
for (size_t i = 0; i < n; ++i) {
if (matrix[i] != nullptr) {
delete[] matrix[i];
matrix[i] = nullptr;
}
}
delete[] matrix;
matrix = nullptr;
}
return matrix;
}

template
T input(const char* msg) {
cout > value;
cin.ignore(0x1000, '\n');
return value;
}

template
void fill(T* box, const size_t n) {
if (!box || !n) return;
for (size_t i = 0; i < n; ++i) cin >> box[i];
}

template
void fill(T** matrix, const size_t n, const size_t m) {
if (!matrix || !n || !m) return;
for (size_t i = 0; i < n; ++i) fill(matrix[i], m);
}

template
void task(T* box, const size_t n, T x) {
for (size_t i = 0; i < n; ++i) box[i] %= x;
}

template
void show(T* box, const size_t n) {
for (size_t i = 0; i < n; ++i) cout
ВС
Владимир Сальников
53 537
Лучший ответ