Поменять местами столбцы, содержащие минимальный и максимальный элементы матрицы - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Прошу помочь в данной задаче. Дана матрица размера M × N. Поменять местами столбцы, содержащие минимальный и максимальный элементы матрицы

Решение задачи: «Поменять местами столбцы, содержащие минимальный и максимальный элементы матрицы»

textual
Листинг программы
int i, j, n, m, maxCol, minCol;
double maxVal, minVal, dblBuf;
double a[50][50];
 
n = 5;
m = 4;
maxVal = -1000000;
minVal = 1000000;
 
// Заполнение массива     
for (i = 0; i < n; i++)
{
    for (j = 0; j < m; j++)
    {
        a[i][j] = rand() % 50;
        printf("%6.2lf  ", a[i][j]);
    }
    printf("\n");
}
printf("\n");
 
// Поиск максимального и минимального значение и номеров соответствующих столбцов
for (i = 0; i < n; i++)
{
    for (j = 0; j < m; j++)
    {
        if (a[i][j] > maxVal)
        {
            maxVal = a[i][j];
            maxCol = j;
        }
        if (a[i][j] < minVal)
        {
            minVal = a[i][j];
            minCol = j;
        }
    }
}
 
// Замена столбцов
for (i = 0; i < n; i++)
{
    dblBuf = a[i][maxCol];
    a[i][maxCol] = a[i][minCol];
    a[i][minCol] = dblBuf;
}
 
// Вывод результатаов
printf("Максимальное значение (%f) содержится в столбце (%d)\n", maxVal, maxCol);
printf("Минимальное значение (%f) содержится в столбце (%d)\n", minVal, minCol);
printf("Модифицированная таблица:\n", minVal, minCol);
for (i = 0; i < n; i++)
{
    for (j = 0; j < m; j++)
    {
        printf("%6.2lf  ", a[i][j]);
    }
    printf("\n");
}
printf("\n");

Объяснение кода листинга программы

  1. Объявлены необходимые переменные:
    • i, j, n, m, maxCol, minCol - целочисленные индексы для работы с матрицей;
    • maxVal, minVal - для хранения максимального и минимального значений в матрице;
    • dblBuf - для временного хранения значения при перестановке столбцов;
    • a[50][50] - двумерный массив размерности 50x50.
  2. Заполнение матрицы a случайными значениями от 0 до 49 с помощью функции rand().
  3. Поиск максимального и минимального значений в матрице a и их соответствующих столбцов.
  4. Замена столбцов с минимальным и максимальным значениями с помощью временной переменной dblBuf.
  5. Вывод на экран максимального и минимального значений и их столбцов.
  6. Вывод на экран модифицированной матрицы a.

Оцени полезность:

5   голосов , оценка 4 из 5
Похожие ответы