Задать вопрос
16 сентября, 01:18

C + + Дана матрица N * M. Переставляя ее строки и столбцы, переместить наибольший элемент в верхний левый угол. Определить можно ли таким же образом поместить минимальный элемент в нижний правый угол.

+2
Ответы (1)
  1. 16 сентября, 03:15
    0
    Ну вот как-то так, если что-то не ясно - спрашивай. Инициализации начальных элементов нет, так что без соответствующей правки она не заработает.

    int main () {

    / / Something

    int a[n][m];

    / / Init

    / / Находим максимум

    int im = 0, jm = 0, max = a[0][0];

    for (int i = 0; i < n; + + i)

    for (int j = 0; j < m; + + j)

    if (a[i][j] > max) {

    max = a[i][j];

    im = i;

    jm = j;

    }

    / / Двигаем максимум вниз

    swapCollumn (a, n, m, im, n-1) ;

    swapRow (a, n, m, jm, m-1) ;

    }

    //Премещаем 2 столбца местами

    void swapCollumn (int * * a, int n, int m, int c1, int c2)

    //Перемещаем 2 строки местами

    void swapRow (int * * a, int n, int m, int r1, int r2)

    void swap (int * el1, int el2) {

    int t = * el1;

    *el1 = * el2;

    *el2 = * el1;

    }
Знаете ответ на вопрос?
Не уверены в ответе?
Правильный ответ на вопрос 👍 «C + + Дана матрица N * M. Переставляя ее строки и столбцы, переместить наибольший элемент в верхний левый угол. Определить можно ли таким ...» по предмету 📗 Информатика. Развернутая система поиска нашего сайта обязательно приведёт вас к нужной информации. Как вариант - оцените ответы на похожие вопросы. Но если вдруг и это не помогло - задавайте свой вопрос знающим оппонентам, которые быстро дадут на него ответ!
Искать готовые ответы