Вывести индексы всех седловых точек, сравнить значения в строках, найти средние в столбцах - 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;
- }
Объяснение кода листинга программы
Код выполняет следующие действия:
- Ищет седловые точки в каждом из трех строк матрицы a[3][3].
- Находит минимальное и максимальное значение в каждой строке и записывает их в переменные min, max и min2, max2 соответственно.
- Находит индексы ячеек с минимальным и максимальным значением в каждой строке и записывает их в переменные L и L2.
- Проверяет, является ли найденное значение седловым, и выводит соответствующее сообщение.
- Вычисляет среднее значение в каждом столбце и записывает его в переменную d.
- Выводит среднее значение для каждого столбца.
- Устанавливает начальные значения для всех переменных, используемых во втором цикле.
- Во втором цикле проходит по всем элементам матрицы, суммирует их и записывает результат в переменную t.
- Проверяет, является ли значение в текущей ячейке равным значению в первом столбце, и если да, увеличивает счетчик pch.
- Если значение pch равно количеству элементов в строке, то все элементы в этой строке обнуляются.
- Код завершается возвратом 0.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д