C/C++

C++ программирование с использованием динамических двумерных массивов

#include< iostream >
#include< ctime >
using namespace std;

void print (int **array, int x, int y)
{
for (int i = 0; i < x; i++) {
for (int j = 0; j < y; j++) cout << array[i][j] << "\t";
cout << endl << endl;
}
}

int main()
{
setlocale(LC_ALL, "ru");
srand(time(NULL));
cout << "Введите размер матрицы x y\n";
int x, y;
cin >> x >> y;
int** array = new int* [x];
for (int i = 0; i < x; i++) array[i] = new int[y];

int* minx = new int[x];
int* maxx = new int[x];
int* miny = new int[y];
int* maxy = new int[y];

for (int i = 0; i < x; i++)
for (int j = 0; j < y; j++) array[i][j] = rand() % 201;

print(array, x, y);

for (int i = 0; i < x; i++)
for (int j = 0; j < y; j++) {
if (j == 0) { minx[i] = 0; maxx[i] = 0; }
else {
if (array[i][minx[i]] > array[i][j]) minx[i] = j;
if (array[i][maxx[i]] < array[i][j]) maxx[i] = j;
}
if (i == 0) { miny[j] = 0; maxy[j] = 0; }
else {
if (array[miny[j]][j] > array[i][j]) miny[j] = i;
if (array[maxy[j]][j] < array[i][j]) maxy[j] = i;
}
}
bool flag = false;

for (int i = 0; i < x; i++)
{
if (i == maxy[minx[i]]) { cout << "cord " << i << " " << minx[i] << endl; flag = true; }
if (i == miny[maxx[i]]) { cout << "cord " << i << " " << maxx[i] << endl; flag = true; }
}

if (!flag) cout << "Седловых точек нет";
}
Токарев Константин
Токарев Константин
51 411
Лучший ответ
Недавно писал на ответах пример на С про двумерные массивы из динамически-выделенной памяти. Возможно он чем-то вам поможет. https://pastebin.com/ZA2xzagj