Замена максимального и минимального элементов прямоугольной матрицы их средним геометрическим - C (СИ)
Формулировка задачи:
Написать программу замены максимального и минимального элементов прямоугольной матрицы. Заменить их средним геометрическим. Массив заполняется пользователем с клавиатуры. Результат вывести на экран.
вот мой код, он не все проблемы решает, а именно не делает замену. подскажите, что нужно сделать.
#include <conio.h> #include <math.h> #include <stdio.h> #include <stdlib.h> const int M = 5; const int N = 4; void main() { int i, j,imin=0,jmin=0,imax=0,jmax=0; float A[M][N],max,min,sred,proizv=1; for(i=0;i<M;i++) { for(j=0;j<N;j++) { (float)A[i][j]=2+rand()%10; } } for(i=0;i<M;i++) { for(j=0;j<N;j++) { printf("%f\t",A[i][j]); } printf("\n"); } (float)max=(float)A[0][0],(float)min=(float)A[0][0]; for(i=0;i<M;i++) { for(j=0;j<N;j++) { if(A[i][j]<=min) { min=A[i][j]; imin=i; jmin=j; } if(A[i][j]>=max) { max=A[i][j]; imax=i; jmax=j; } } } printf("max element raven %f\n",max); printf("min element raven %f\n",min); proizv=min*max; printf("proizv max i min ravno %f\n",proizv); sred=sqrt(proizv); printf("srednee geometr ravno %f\n",sred); max=sred,min=sred; printf("\n"); for(i=0;i<M;i++) { for(j=0;j<N;j++) { if(A[i][j]==max) printf("%f",sred); else printf("%f\t",A[i][j]); } printf("\n"); } }
Решение задачи: «Замена максимального и минимального элементов прямоугольной матрицы их средним геометрическим»
textual
Листинг программы
int i, j, max,min,x[5][4]; int x,y; ... ... ... max = x[0][0]; min = x[0][0]; for(i=0; i<5; i++) { for(j=1;j<4;j++) {if(x[i][j]) > max) {max = x[i][j] ;x=i;y=j;} else if(x[i][j] < min) { min = x[i][j] ; t=i;p=j;}} f=x[x][y]; x[x][y]=x[t][j]; x[t][j]=f;
Объяснение кода листинга программы
В этом коде выполняется замена максимального и минимального элементов прямоугольной матрицы их средним геометрическим. Вот список действий, которые происходят в коде:
- Переменные
i
,j
,max
,min
и массивx[5][4]
объявляются. - Переменные
x
иy
инициализируются. max
иmin
инициализируются значением первого элемента первой строки матрицыx
.- Два вложенных цикла
for
используются для итерации по всем элементам матрицыx
. - Внутри первого цикла
for
, второй циклfor
итерируется по всем элементам второй строки каждого подмассива. - Если текущий элемент больше
max
, то обновляются значенияmax
иx
,y
указывают на текущий элемент. - Если текущий элемент меньше
min
, то обновляются значенияmin
,t
иp
указывают на текущий элемент. - Значение
f
инициализируется значениемx[x][y]
. x[x][y]
заменяется значениемx[t][j]
.x[t][j]
заменяется значениемf
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д