Замена максимального и минимального элементов прямоугольной матрицы их средним геометрическим - 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;

Объяснение кода листинга программы

В этом коде выполняется замена максимального и минимального элементов прямоугольной матрицы их средним геометрическим. Вот список действий, которые происходят в коде:

  1. Переменные i, j, max, min и массив x[5][4] объявляются.
  2. Переменные x и y инициализируются.
  3. max и min инициализируются значением первого элемента первой строки матрицы x.
  4. Два вложенных цикла for используются для итерации по всем элементам матрицы x.
  5. Внутри первого цикла for, второй цикл for итерируется по всем элементам второй строки каждого подмассива.
  6. Если текущий элемент больше max, то обновляются значения max и x, y указывают на текущий элемент.
  7. Если текущий элемент меньше min, то обновляются значения min, t и p указывают на текущий элемент.
  8. Значение f инициализируется значением x[x][y].
  9. x[x][y] заменяется значением x[t][j].
  10. x[t][j] заменяется значением f.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.857 из 5
Похожие ответы