Поменять местами строки матрицы с наибольшим и с наименьшим значением - 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, заканчивая свою работу.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д