Код:
#include<iostream>
using namespace std;
class Massiv2
{public:
int**matr;
int n;
Massiv2();
Massiv2(int n);
Massiv2(Massiv2 &);
~Massiv2();
void Rand(int);
int local_min();
bool operator==(Massiv2&);
Massiv2& operator=(Massiv2&);
Massiv2 operator+(Massiv2&);
friend istream& operator>>(istream&,Massiv2&);
friend ostream& operator<<(ostream&,Massiv2&);
};
int main()
{
int a;
int b;
cout<<"Input number of randomizing: "<<' ';
cin>>b;
cout<<"Input size of massiv: "<<' ';
cin>>a;
Massiv2 matr(a);
matr.Rand(b);
cout<<"Matrica\n"<<matr<<endl;
cout<<"Loc min col: "<<matr.local_min()<<'\n';
cin.get();
cin.get();
return 0;
}
Massiv2::Massiv2()
{
this->n=3;
matr=new int*[n];
for(int i=0;i<n;++i)
matr[i]=new int[n];
}
Massiv2::Massiv2(int k)
{
this->n=k;
matr=new int*[n];
for(int i=0;i<n;++i)
matr[i]=new int[n];
}
Massiv2::~Massiv2()
{
for(int i=0;i<n;++i)
delete[]matr[i];
delete[]matr;
}
void Massiv2::Rand(int k)
{
for(int i=0;i<n;++i)
for(int j=0;j<n;++j)
matr[i][j]=rand()%k;
}
int Massiv2::local_min()
{
int col_l_min=0;
for(int i=0;i<n;++i)
for(int j=0;j<n;++j)
{ if(n==1){cout<<"error\n"; break;}
if(i>0 && j>0 && i<n-1 && j<n-1 && matr[i][j] < matr[i-1][j] && matr[i][j] < matr[i+1][j] && matr[i][j] < matr[i][j-1] && matr[i][j] < matr[i+1][j+1] && matr[i][j] < matr[i-1][j-1] && matr[i][j] < matr[i+1][j+1] && matr[i][j] < matr[i+1][j-1] && matr[i][j] < matr[i-1][j+1]){col_l_min++;}
if(i==0 && j==0 && matr[i][j]<matr[i+1][j] && matr[i][j]<matr[i+1][j+1] && matr[i][j]<matr[i][j+1]){col_l_min++;}
if(i==n-1 && j==0 && matr[i][j]<matr[i-1][j] && matr[i][j]<matr[i-1][j+1] && matr[i][j]<matr[i][j+1]){col_l_min++;}
if(i==0 && j==n-1 && matr[i][j]<matr[i][j-1] && matr[i][j]<matr[i+1][j-1] && matr[i][j]<matr[i+1][j]){col_l_min++;}
if(j==n-1 && i==n-1 && matr[i][j]<matr[i-1][j] && matr[i][j]<matr[i-1][j-1] && matr[i][j]<matr[i][j-1]){col_l_min++;}
if(i==0 && j>0 && j<n-1 && matr[i][j] < matr[i][j-1] && matr[i][j] < matr[i+1][j-1] && matr[i][j] < matr[i+1][j+1] && matr[i][j] < matr[i+1][j] && matr[i][j] < matr[i][j+1]){col_l_min++;}
if(j==0 && i<n-1 && i>0 && matr[i][j] < matr[i+1][j] && matr[i][j] < matr[i+1][j+1] && matr[i][j] < matr[i][j+1] && matr[i][j] < matr[i-1][j+1] && matr[i][j] < matr[i-1][j]){col_l_min++;}
if(j==n-1 && i>0 && i<n-1 && matr[i][j] < matr[i+1][j] && matr[i][j] < matr[i+1][j-1] && matr[i][j] < matr[i][j-1] && matr[i][j] < matr[i+1][j-1] && matr[i][j] < matr[i+1][j]){col_l_min++;}
if(i==n-1 && j>0 && j<n-1 && matr[i][j] < matr[i][j-1] && matr[i][j] < matr[i-1][j-1] && matr[i][j] < matr[i-1][j] && matr[i][j] < matr[i-1][j-1] && matr[i][j] < matr[i][j+1]){col_l_min++;}
}
return col_l_min;
}
istream& operator>>(istream& in,Massiv2& obj)
{
for(int i(0);i<obj.n;i++)
for(int j(0);j<obj.n;j++)
in>>obj.matr[i][j];
return in;
}
ostream& operator<<(ostream& out,Massiv2& obj)
{
for(int i(0);i<obj.n;out<<'\n',i++)
for(int j(0);j<obj.n;j++)
{
out.width(5);
out<<obj.matr[i][j];
}
out<<'\n';
return out;
}
это конечно полнейший гавнокод, но вдруг кому-то пригодится ))