C/C++

Функции и массивы в С++

Используя функции, сформировать с помощью ДСЧ двумерный массив и вывести его на печать.
2.4 Выполнить обработку двумерного массива в соответствии с вариантом, используя функции, результат вывести на печать.
// программа на языке C++
// если была нужна на Си, напишите в комментарии

// циклически сдвигать я пока не научился
// сразу не увидел эту часть вопроса

#include <iostream>
#include <ctime>
#include <cstdlib>

using namespace std;

int ** create(int & n, int & p)
{
int ** M;
do
{
cout << "Количество строк массива = ";
cin >> n;
}while(n<1);

do
{
cout << "Количество столбцов массива = ";
cin >> p;
}while(p<1);

M = new int*[n];
for(int x = 0; x < n; x++)
M[x] = new int[p];

srand(time(nullptr));
rand();
for(int x = 0; x < n; x++)
for(int y = 0; y < p; y++)
M[x][y] = rand() % 51 - 25; // диапазон от -25 до +25

return M;
}

void print(int ** M, int n, int p)
{
for(int x = 0; x < n; x++)
{
for(int y = 0; y < p; y++)
cout << M[x][y] << '\t';
cout << endl;
}
cout << endl;
}

int main()
{
int ** M,n,p;

M = create(n,p); // сформировать массив
print(M,n,p); // вывод на экран

if(M != (int**) nullptr)
{
for(int x = 0; x < n; x++)
{
if(M[x] == (int*) nullptr) exit(1);
delete [] M[x];
M[x] = (int*) nullptr;
}
delete [] M;
M = (int**) nullptr;
}
else exit(1);

return 0;
}
Александр Горин
Александр Горин
98 485
Лучший ответ
Александр Горин А сдвинуть циклически -- это я пока не умею.