Найти наибольший и наименьший элементы прямоугольной матрицы и поменять их местами - 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.