Дан массив а(n, m). строку, содержащую максимальный элемент, поменять местами со строкой, содержащей минимальный элемент.

layma45 layma45    1   22.07.2019 08:00    0

Ответы
Андріана1111111 Андріана1111111  03.10.2020 10:24
В C++

#include <iostream>
#include <iomanip>
int main()
{
    const int n = 5;
    const int m = 3;
    int A[n][m];

    for (int i = 0; i < n; i++)                //заполняем как-нибудь массив
        for (int j = 0; j < m; j++)
            A[i][j] = (i - 3) * (j + 3);  

    for (int i = 0; i < n; i++)                //выведем исходную матрицу на экран
    {
        for (int j = 0; j < m; j++)
            std::cout << std::setw(4) << A[i][j];
        std::cout << '\n';
    }

    int maxEl = A[0][0];
    int indexMax = 0;
    for (int i = 0; i < n; i++)  //найдем максимальный элемент
    {
        for (int j = 0; j < m; j++)
            if (A[i][j] > maxEl)
            {
                maxEl = A[i][j];
                indexMax = i; //номер строки с максимальным элементом
            }
    }

    int minEl = A[0][0];
    int indexMin = 0;
    for (int i = 0; i < n; i++)  //найдем минимальный элемент
    {
        for (int j = 0; j < m; j++)
            if (A[i][j] < minEl)
            {
                minEl = A[i][j];
                indexMin = i; //номер строки с минимальным элементом
            }
    }

    for (int j = 0; j < m; j++)   //меняем строки
    {
        int temp;
        temp = A[indexMax][j];
        A[indexMax][j] = A[indexMin][j];
        A[indexMin][j] = temp;
    }

    std::cout << "\n\n";
    for (int i = 0; i < n; i++)     //выведем полученную матрицу на экран
    {
        for (int j = 0; j < m; j++)
            std::cout << std::setw(4) << A[i][j];
        std::cout << '\n';
    }

    return 0;
}
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика