Вывести индексы всех седловых точек, сравнить значения в строках, найти средние в столбцах - 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д