Найти наибольший и наименьший элементы прямоугольной матрицы и поменять их местами - C (СИ)
Формулировка задачи:
Помогите пожалуйста решить задачу :
Найти наибольший и наименьший элементы прямоугольной матрицы и поменять их места-ми.
Вот код :
Буду рад любому объяснению . Зарание спасибо !!!
#include<conio.h> #include<stdio.h> #include<math.h> #include<stdlib.h> #define n 3 void main() { clrscr(); int m[n][n],i,j,d,t,v; int max; int min; //randomize(); printf("vvedite 9 4isel\n"); for(i=0;i<n;i++) for(j=0;j<n;j++) scanf("%d",&m[i][j]); //m[i][j]=random(n); printf("Nash massiv\n"); for(i=0;i<n;i++) {printf("\n"); for(j=0;j<n;j++) printf("%d\t",m[i][j]); } max=m[0][0]; min=m[0][0]; for(i=0;i<n;i++) for(j=0;j<n;j++) {if(max<m[i][j]) max=m[i][j]; if(min>m[i][j]) min=m[i][j];} t=max;d=min; printf("min=%d,max=%d\n",min,max); printf("t=%d,d=%d",t,d); for(i=0;i<n;i++) for(j=0;j<n;j++) {if(m[i][j]==min)/* не могу понять в чём ошибка , одно число переставляет , а второе оставляет без изменений(там же )*/ m[i][j]=max; if(m[i][j]==max) m[i][j]=min; } printf("min=%d,max=%d\n",min,max); printf("Sdelanni massiv\n"); for(i=max;i<n;i--) {printf("\n"); for(j=min;j<n;j++) printf("%d\t",m[i][j]);} getch(); }
Решение задачи: «Найти наибольший и наименьший элементы прямоугольной матрицы и поменять их местами»
textual
Листинг программы
for(i=0;i<n;i++) for(j=0;j<n;j++) { // не могу понять в чём ошибка if(m[i][j]==min) m[i][j]=max; // если нашли минимальный, то меняем его на максимальный if(m[i][j]==max) // если перед этим была замена на max, то тут m[i][j] = max m[i][j]=min; // элемент меняем обратно на минимум }
Объяснение кода листинга программы
В этом коде ищется минимальный элемент в матрице и меняется на максимальное значение, после чего ищется максимальный элемент и меняется на минимальное значение. Список действий:
- Входные данные:
- n — размерность матрицы (количество строк и столбцов)
- m — матрица, в которой ищется минимальный и максимальный элементы
- min — текущее минимальное значение элемента матрицы
- max — текущее максимальное значение элемента матрицы
- Пройти по всем элементам матрицы с помощью двух вложенных циклов.
- Если элемент матрицы m[i][j] равен min, то поменять его на max.
- Если элемент матрицы m[i][j] равен max, то поменять его на min.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д