Задать вопрос
9 ноября, 16:56

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

+3
Ответы (1)
  1. 9 ноября, 19:49
    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. Переставляя ее строки и столбцы, переместить наибольший элемент в верхний левый угол. Определить можно ли таким ...» по предмету 📙 Информатика, а если ответа нет или никто не дал верного ответа, то воспользуйся поиском и попробуй найти ответ среди похожих вопросов.
Искать другие ответы