Вывести индексы всех седловых точек, сравнить значения в строках, найти средние в столбцах - C (СИ)

Узнай цену своей работы

Формулировка задачи:

1. Дана прямоугольная матрица. Вывести индексы всех седловых точек заданной матрицы. Элемент матрицы называется седловой точкой, если он является наименьшим в своей строке и одновременно наибольшим в своём столбце или, наоборот, является наибольшим в своей строке и наименьшим в своём столбце. 2. Если все элементы какой-либо строки данной матрицы равны между собой, то все элементы такой строки заменить нулями. 3. Вычислить и вывести среднее значение в каждом столбце прямоугольной матрицы
Никто не поможет?(

Решение задачи: «Вывести индексы всех седловых точек, сравнить значения в строках, найти средние в столбцах»

textual
Листинг программы
#include "stdio.h"
 int main(void)
{
  int i,p,j,L,L2,pch,t1=0,min,min2,max,max2,k,k2;
    double d=0,t=0;
        int a[3][3]={{5,6,4},{3,1,2},{3,3,3}};
    
    for(i=0;i<3;i++){
        min=a[i][0];
        max2=a[i][0];
k=0;
        k2=0;
    
        
      for(j=1;j<3;j++)
        {
          if ( a[i][j] < min ){min=a[i][j]; k=j; }
          if ( a[i][j] > max2) { max2=a[i][j]; k2=j;}
              
        }
        
        max=a[i][k];
                L=0;
min2=a[i][k2];
                L2=0;
 
         for (j=1;j<3;j++){
          if(a[j][k] > max ){max=a[j][k]; L=j; }
            if (a[j][k] < min2){min2=a[j][k2]; L2=j;}
          }
        
          if ((a[L][k]==min && a[L][k]==max)){printf("sedl. tochka v stroke %d = %d\n",i,max);}
          if (a[L2][k2] == min2 && a[L2][k2] == max2){printf("sedl. tochka v stroke %d = %d\n",i, max2);}
          
    }
for(i=0;i<3;i++){
p=a[i][0];
    for(j=0;j<3;j++){
          t+=a[j][i];
            t1+=1;
                    }
       d=t/t1;
        printf("srednee arifmeticheskoe po %d stolbtsu = %f\n",i, d);
        t1=0;
        t=0;
        d=0;
        }
for(i=0;i<3;i++){
p=a[i][0];
        pch=1;
    for(j=1;j<3;j++){
         if (p==a[i][j])pch+=1;
            }
    if(pch==j){for(j=0;j<3;j++)a[i][j]=0;  }
        }
return 0;
}

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

Код выполняет следующие действия:

  1. Ищет седловые точки в каждом из трех строк матрицы a[3][3].
  2. Находит минимальное и максимальное значение в каждой строке и записывает их в переменные min, max и min2, max2 соответственно.
  3. Находит индексы ячеек с минимальным и максимальным значением в каждой строке и записывает их в переменные L и L2.
  4. Проверяет, является ли найденное значение седловым, и выводит соответствующее сообщение.
  5. Вычисляет среднее значение в каждом столбце и записывает его в переменную d.
  6. Выводит среднее значение для каждого столбца.
  7. Устанавливает начальные значения для всех переменных, используемых во втором цикле.
  8. Во втором цикле проходит по всем элементам матрицы, суммирует их и записывает результат в переменную t.
  9. Проверяет, является ли значение в текущей ячейке равным значению в первом столбце, и если да, увеличивает счетчик pch.
  10. Если значение pch равно количеству элементов в строке, то все элементы в этой строке обнуляются.
  11. Код завершается возвратом 0.

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


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

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

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