Подсчитать количество локальных минимумов заданной матрицы - C (СИ) (79131)
Формулировка задачи:
Здраствуйте. У мя проблема с задачей.
Элемент матрицы называется локальным минимумом, если он строго меньше всех имеющихся у него соседей. Подсчитать количество локальных минимумов заданной матрицы размером 10 на 10.
Найти сумму модулей элементов, расположенных выше главной диагонали.
Вот с этого условия я сделал, у мя считает локальные минимумы, а сумму главной диагонали не получается. ПОМОГИТЕ ПЛИЗ!!! Я пока сделал матрицу 5х5, чтоб не писать каждый раз 100 элементов.
#include <stdio.h> #include <conio.h> int main() {int a[5][5]; int n=5; int l,k,i,j,s=0,c=0,x; printf("Enter elemets \n"); for(i=0;i<n;++i) for(j=0;j<n;++j) scanf("%d",&a[i][j]); for(i=0;i<n;++i) for(j=0;j<n;++j) if((a[i][j]<a[i+1][j])&&(a[i][j]<a[i][j+1])&&(a[i][j]<a[i+1][j+1])&&(a[i][j]<a[i-1][j])&&(a[i][j]<a[i][j-1])&&(a[i][j]<a[i-1][j-1])&&(a[i][j]<a[i-1][j+1])&&(a[i][j]<a[i+1][j-1])) s++; printf("\n%d",s); getch(); x=0; for(i=0;i<n;++i) {for(j=i;j<n;++j) {x+=a[i][j];} }printf("%d\n",x); getch(); return 0; }
Решение задачи: «Подсчитать количество локальных минимумов заданной матрицы»
textual
Листинг программы
for(i = 0; i < n; ++i) for(j = i + 1; j < n; ++j) sum += abs(a[i][j]);
Объяснение кода листинга программы
В данном коде выполняется подсчет суммы модулей всех элементов матрицы.
- В первой строке объявляется переменная
sum
, которая будет использоваться для хранения суммы модулей. - Во втором блоке цикла перебираются все элементы матрицы
a
. - В каждой итерации внутреннего цикла перебираются все элементы, начиная с элемента, следующего за текущим элементом внешнего цикла.
- В каждой итерации внутреннего цикла к переменной
sum
прибавляется модуль текущего элемента матрицыa[i][j]
. - После завершения циклов, в переменной
sum
будет храниться искомая сумма модулей.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д