Поменять местами столбцы, содержащие минимальный и максимальный элементы матрицы - 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");
Объяснение кода листинга программы
- Объявлены необходимые переменные:
i,j,n,m,maxCol,minCol- целочисленные индексы для работы с матрицей;maxVal,minVal- для хранения максимального и минимального значений в матрице;dblBuf- для временного хранения значения при перестановке столбцов;a[50][50]- двумерный массив размерности 50x50.
- Заполнение матрицы
aслучайными значениями от 0 до 49 с помощью функцииrand(). - Поиск максимального и минимального значений в матрице
aи их соответствующих столбцов. - Замена столбцов с минимальным и максимальным значениями с помощью временной переменной
dblBuf. - Вывод на экран максимального и минимального значений и их столбцов.
- Вывод на экран модифицированной матрицы
a.