Переместить Самый Максимальный Элемент Массива В Левый Верхний Угол

Тема в разделе "Общие вопросы по С и С++", создана пользователем Eric1121, 24 дек 2014.

  1. Eric1121

    Eric1121 New Member

    Регистрация:
    24 дек 2014
    Сообщения:
    1
    Симпатии:
    0
    Облазил кучу тем, но везде идет перестановка столбцов и строк, но это не то. Пожалуйста помогите, как сделать чтобы самый максимальный элемент массива оказался в левом верхнем углу, а тот элемент который стоял до перестановки в левом верхнем углу не исчезал, не смещал все остальные элементы а встал на то место, где был тот самый максимальный элемент. Спасибо!
     
  2. Whatka

    Whatka Well-Known Member

    Регистрация:
    9 окт 2011
    Сообщения:
    433
    Симпатии:
    4
    Код (C++):
    #include    <iostream>
    #include    <algorithm>
    using namespace std;

    void show(int** A, int N, int M)
    {
    for (int i = 0; i < N; i++)
    {
    cout << "\n";
    for (int j = 0; j < M; j++)
    cout << A[i][j] << "\t";
    }
    cout << "\n";
    }

    void main()
    {
    int** A, N, M;

    cin >> N >> M;

    A = new int*[N];
    for (int i = 0; i < N; i++)
    {
    A[i] = new int[M];
    for (int j = 0; j < M; j++)
    A[i][j] = rand() % 100;
    }
    Show(A, N, M);

    int max_i(0), max_j(0);
    for (int i = 0; i < N; i++)
    {
    for (int j = 0; j < M; j++)
    {
    if (A[max_i][max_j] < A[i][j])
    {
    max_i = i;
    max_j = j;
    }
    }
    }
    swap(A[0][0], A[max_i][max_j]);
    show(A, N, M);
    }
     
Загрузка...

Поделиться этой страницей