Автор Кира Артемьева задал вопрос в разделе Другие языки и технологии
двумерный массив С++ и получил лучший ответ
Ответ от Николай Веселуха[гуру]
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <iomanip>
using namespace std;
void show_matrix(int **, const size_t, const size_t);
void swap_min_max_row_matrix(int **, const size_t, const size_t);
int * min_index(int *, const size_t);
int * max_index(int *, const size_t);
int main() {
cout << "rows, columns?.. ";
size_t r, c;
cin >> r >> c;
int ** a = new int * [r];
srand(unsigned(time(0));
for (size_t n = 0; n < r; n++) {
a[n] = new int [c];
for (size_t m = 0; m < c; m++)
a[n][m] = rand();
}
show_matrix(a, r, c);
swap_min_max_row_matrix(a, r, c);
show_matrix(a, r, c);
for (size_t n = 0; n < r; n++) delete[] a[n];
delete[] a;
a = NULL;
cin.get(); cin.get();
return 0;
}
void show_matrix(int ** p, const size_t r, const size_t c) {
for (size_t n = 0; n < r; n++, cout << endl)
for (size_t m = 0; m < c; m++)
cout << setw(7) << p[n][m];
cout << endl;
}
int * min_index(int * beg, const size_t size) {
int * index = 0;
int min = INT_MAX;
for (size_t n = 0; n < size; n++)
if (beg[n] < min) {
min = beg[n];
index = &beg[n];
}
return index;
}
int * max_index(int * beg, const size_t size) {
int * index = 0;
int max = INT_MIN;
for (size_t n = 0; n < size; n++)
if (beg[n] > max) {
max = beg[n];
index = &beg[n];
}
return index;
}
void swap_min_max_row_matrix(int ** ptr, const size_t rows, const size_t cols) {
int temp;
int * min, * max;
size_t next = 0;
for (ptr[next]; ptr[next] < ptr[rows]; next++) {
max = max_index(ptr[next], cols);
min = min_index(ptr[next], cols);
temp = *min;
*min = *max;
*max = temp;
}
}
Надеюсь Striker все же напишет, мне лень просто так писать.
Но надо найти для начала минимум и максимум в строке, если минимум и максимум отличается, то запомнить, потом снова пробежать по строке и менять все значения с минимумом на максимум, а максимум на минимум.
И так для каждой строки в матрице
Идешь по строкам, запоминаешь номера максимального и минимального элементов. А потом меняешь местами элементы с этими индексами.
Народ, как задается двумерный массив в паскале??
Массивы, положение элементов в которых описывается двумя индексами, называются двумерными.
подробнее...
Что такое Двумерный массив?
Язык программирования какой?
___
Двумерный массив - в простонародье
подробнее...
что такое одномерный и двумерный массив?
Одномерный массив - это у вас в линию выстроены предметы. У каждого есть номер.
Двумерный
подробнее...
Двумерный массив в Visual Basic
Двумерный массив можно представить как таблицу (матрицу)
Каждая ячейка массива имеет свой
подробнее...
работа с abc pascal. массивы
Массивы - это совокупности однотипных элементов. Характеризуются они следующим:
каждый
подробнее...
Как задать двумерный динамический массив в Паскале?
Двумерные массивы Паскаля – матрицы
Двумерный массив в Паскале трактуется как одномерный
подробнее...
Массив строк, С++. Как можно задать массив строк в С++? for (i=1; i<=n; i++) cin>>b; Так не получается.
это вы цикл указали, массив задается так
подробнее...
Подскажите пожалуйста, как в двумерном массиве поменять местами n-строку и m-столбец (Паскаль)
чтобы обмен был возможен,
матрица (двухмерный массив ARR: array[1..RAZMER,1..RAZMER)
должна
подробнее...
Указатели С++
Node a - a является стукртурой
Node *a - а является указателем на структуру, либо на массив
подробнее...
Написать функцию перемешивания двумерного массива (поле для пятнашек) , чтобы их можно было пройти (JS)
Проходимость пятнашек зависит от кол-ва - точнее, от
подробнее...
C++: И снова передача двумерных массив в функцию.. . каким макаром это сделать?
Объясняю: массив - это ряд одинаковых значений (нет, я не Очевидность 🙂 ). Имя массива в C/C++
подробнее...
uopilot какие команды в uopilot на нажатия enter и стрелочка вверх?
Данная документация содержит описание языка скриптов программы UoPilot
Условные
подробнее...
Помогите выдало 4 ошибки при компиляции
либо забыли где-то точку с запятой, либо спидометр не может принять двойные [][]
скорее всего
подробнее...
Генерация случайных чисел без повторений в Delphi
Делаешь двумерный массив [1..52,1..2]
в одну часть заносишь значения без повторений [1,1]=1
подробнее...