Поменять местами строки матрицы с наибольшим и с наименьшим значением - C (СИ)
Формулировка задачи:
Есть задание: Задан двухмерный массив вещественных чисел размерности 3х3. Найти номер строки и номер столбца, в которых находится наименьший элемент. Массив описать как типизированную константу.
Вот код: Нужно написать такое, чтоб менялась строка с наибольшим значением с строкой с наименьшим значением.
Помогите пожалуйста)
#include "stdafx.h" #include "stdio.h" #include "locale.h" #define SIZE 3 int main() { setlocale(LC_ALL, "RUS"); const int array [SIZE][SIZE] = { {1, 5, 7}, {6, 9, 0}, {4, 3, -2} }; int i,j, min = array [0][0]; for (i=0; i<SIZE; i++) { for (j=0; j<SIZE; j++) { if (min>array[i][j]) { min = array[i][j]; } } } printf("Минимальное значение матрицы = %d \n", min); return 0; }
Решение задачи: «Поменять местами строки матрицы с наибольшим и с наименьшим значением»
textual
Листинг программы
#include "stdio.h" #include "locale.h" #define SIZE 3 int main() { setlocale(LC_ALL, "RUS"); int array [][SIZE] = { {1, 5, 7}, {6, 9, 0}, {4, 3, -2} }; int i,j; int imin = 0; int imax = 0; int jmin = 0; int jmax = 0; int buf = 0; for (i=0; i<SIZE; i++) for (j=0; j<SIZE; j++) { if( array[imin][jmin]> array[i][j]) { imin = i; jmin = j; } else if( array[imax][jmax]< array[i][j]) { imax = i; jmax = j; } } printf("Минимальное значение матрицы = %d \n", array[imin][jmin]); printf("Максимальное значение матрицы = %d \n", array[imax][jmax]); for (j=0; j<SIZE; j++) { buf = array[imin][j]; array[imin][j] = array[imax][j]; array[imax][j] = buf; } for (i=0; i<SIZE; i++) { for (j=0; j<SIZE; j++) printf("%d\t", array[i][j]); printf("\r\n"); } return 0; }
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы
stdio.h
иlocale.h
. - Определяется размер матрицы SIZE, равный 3.
- Объявляется и инициализируется матрица array[3][3] с примером значений.
- Объявляются необходимые переменные для поиска минимального и максимального значения в матрице: а) i, j — циклы для перебора всех элементов матрицы; б) imin, jmin — индексы минимального значения; в) imax, jmax — индексы максимального значения; г) buf — временная буферная переменная для обмена значениями.
- В цикле перебираются все элементы матрицы.
- Если текущий элемент больше значения в позиции imin[jmin], то обновляются значения индексов минимального значения.
- Если текущий элемент меньше значения в позиции imax[jmax], то обновляются значения индексов максимального значения.
- Выводятся на экран минимальное и максимальное значения матрицы.
- В цикле меняются местами значения в позициях imin[j] и imax[j].
- В цикле выводятся все значения матрицы на экран.
- Программа возвращает 0, заканчивая свою работу.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д