Используя функции, сформировать с помощью ДСЧ двумерный массив и вывести его на печать.
2.4 Выполнить обработку двумерного массива в соответствии с вариантом, используя функции, результат вывести на печать.
C/C++
Функции и массивы в С++
// программа на языке 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;
}
// если была нужна на Си, напишите в комментарии
// циклически сдвигать я пока не научился
// сразу не увидел эту часть вопроса
#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;
}
Александр Горин
А сдвинуть циклически -- это я пока не умею.
Похожие вопросы
- Функции и массивы в С++
- Функции и массивы С++
- Функции и массивы в С++
- Как работать с элементами динамического массива из функции?
- Массив функции c++ помогите
- Как в функции распечатать двумерный динамический массив в Си
- Рекурс.функцию, которая принимает 2х-мерный массив целых чисел и кол-во сдвигов и выполняет круговой сдвиг массива влево
- Написать РЕКУРСИВНУЮ функцию, которая принимает двухмерный массив целых чисел и выполняет круговой сдвиг массива ВЛЕВО.
- С++ Составить функцию, которая меняет местами пары соседних элементов в массиве
- Как массив передать в функцию и обратно? (Язык C)