с двумерный массив



Автор Кира Артемьева задал вопрос в разделе Другие языки и технологии

двумерный массив С++ и получил лучший ответ

Ответ от Николай Веселуха[гуру]
#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;
    }
}

Ответ от Kaiu[гуру]
Надеюсь Striker все же напишет, мне лень просто так писать.
Но надо найти для начала минимум и максимум в строке, если минимум и максимум отличается, то запомнить, потом снова пробежать по строке и менять все значения с минимумом на максимум, а максимум на минимум.
И так для каждой строки в матрице

Ответ от Striker[гуру]
Идешь по строкам, запоминаешь номера максимального и минимального элементов. А потом меняешь местами элементы с этими индексами.

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: двумерный массив С++
спросили в Pavel Prusskiy
Народ, как задается двумерный массив в паскале??
Массивы, положение элементов в которых описывается двумя индексами, называются двумерными.подробнее...

Что такое Двумерный массив?
Язык программирования какой?
___
Двумерный массив - в простонародье
подробнее...

что такое одномерный и двумерный массив?
Одномерный массив - это у вас в линию выстроены предметы. У каждого есть номер.
Двумерный
подробнее...

Двумерный массив в Visual Basic
Двумерный массив можно представить как таблицу (матрицу)
Каждая ячейка массива имеет свой
подробнее...

работа с abc pascal. массивы
Массивы - это совокупности однотипных элементов. Характеризуются они следующим:

каждый
подробнее...
Ответ от 3 ответа[гуру]
Привет! Вот еще темы с похожими вопросами:

Как задать двумерный динамический массив в Паскале?
Двумерные массивы Паскаля – матрицы
Двумерный массив в Паскале трактуется как одномерный
подробнее...

Подскажите пожалуйста, как в двумерном массиве поменять местами n-строку и m-столбец (Паскаль)
чтобы обмен был возможен,
матрица (двухмерный массив ARR: array[1..RAZMER,1..RAZMER)
должна
подробнее...

Указатели С++
Node a - a является стукртурой
Node *a - а является указателем на структуру, либо на массив
подробнее...
спросили в Randomness Stdio h
C++: И снова передача двумерных массив в функцию.. . каким макаром это сделать?
Объясняю: массив - это ряд одинаковых значений (нет, я не Очевидность 🙂 ). Имя массива в C/C++
подробнее...

uopilot какие команды в uopilot на нажатия enter и стрелочка вверх?
Данная документация содержит описание языка скриптов программы UoPilot

Условные
подробнее...

Помогите выдало 4 ошибки при компиляции
либо забыли где-то точку с запятой, либо спидометр не может принять двойные [][]
скорее всего
подробнее...

Генерация случайных чисел без повторений в Delphi
Делаешь двумерный массив [1..52,1..2]
в одну часть заносишь значения без повторений [1,1]=1
подробнее...
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*