Лабораторные / ЛР №6.Функции / МУ к Лр№6.Функции
.odt//Поиск локальных экстремумов в матрицах
//Локальным экстремумом называется точка в которой
//знечение меньше чем во всех окружающих ее точках
// Найти все локальные экстремумы в матрице
#include <stdio.h>
#include <stdlib.h>
int locext(int n,int m,int a[10][10]);
main()
{
const int n=10, m=10;
int a[n][m];
int r,k,i,j;
for(i=0; i<n; i++)
for(j=0;j<m; j++)
a[i][j]=rand()/100;
for(i=0; i<n; i++)
{
for(j=0;j<m; j++)
printf("%i ",a[i][j]);
printf("\n");
}
r=locext(n,m,a);
printf("Локальных экстремумов= %i\n",r);
system("pause");
return 0;
}
int locext(int n,int m,int a[10][10])
{int k,i,j,s=0;
for (i=1;i<n-1;i++)
for (j=1;j<m-1;j++)
{
k=a[i][j];
if (k<a[i-1][j-1]&&k<a[i-1][j]&&k<a[i-1][j+1]&&k<a[i][j-1]&&k<a[i][j+1]&&k<a[i+1][j-1]
&&k<a[i+1][j]&&k<a[i+1][j+1]) {s++;printf("a[ %i ][ %i ]\n",i,j);}
}
return s;
}
//Вычисление сумму модулей элементов матрицы выше главной диагонали
#include <stdio.h>
#include <stdlib.h>
main()
{
const int n=10, m=10;
int a[n][m];
int k,i,j;
for(i=0; i<n; i++)
for(j=0;j<m; j++)
a[i][j]=rand()/1000;
for(i=0; i<n; i++)
{
for(j=0;j<m; j++)
printf("%i ",a[i][j]);
printf("\n");
}
k=0;
for (i=1;i<n;i++)
for (j=i+1;j<m;j++)
k+=a[i][j];
printf("S= %i \n",k);
system("pause");
return 0;
}