
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 << "Седловых точек нет";
}
#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 << "Седловых точек нет";
}
Недавно писал на ответах пример на С про двумерные массивы из динамически-выделенной памяти. Возможно он чем-то вам поможет. https://pastebin.com/ZA2xzagj
Похожие вопросы
- Задача.Программирование.С++.Динамический двумерный массив.
- Динамический двумерный массив
- Указатели. Программирование с использованием динамических двухмерным масивов.
- Программирование на C++ с использованием динамического массива
- Программирование алгоритмов с использованием двумерных массивов c++
- Двумерные массивы C++, ничего не понимаю((( Нужна помощь
- Двумерный массив C++
- Заполнить двумерный массив 5*3 и найти строку с максимальным произведением элементов. C++
- Программирование C++. Двумерные массивы
- Минимакс двумерного массива, c#