{ const int N=5, M=5;
const int RANGE_MIN = 0; //миним.значение СВ
const int RANGE_MAX = 25; //максим.значение СВ
int A[N][M]={0};
int max, min, sum, k;
int i,j;
//установка точки(начала) для генерации СВ
srand( (unsigned)time(0));
for(i=0;i<N;i++)
for(j=0;j<M;j++)
A[i][j] = rand() % (RANGE_MAX+1) + RANGE_MIN ;
for (i=0;i<N;i++)
{ for (int j=0;j<M;j++)
cout<<setw(6)<<A[i][j];
cout<<"\n";
}
//#1
max=A[0][0];min=A[0][0];
sum=0; k=0;
for (i=0;i<(N+1)/2;i++)
{
for (int j=0;j<M;j++)
{ if (min>A[i][j]) min=A[i][j];
if (max<A[i][j]) max=A[i][j];
sum +=A[i][j];
k++;
}
}
cout<<"\n========= # 1 ===========\n";
cout<<"\nMax = "<<max<<"\nMin = "<<min<<"\nSum = "<<sum<<" kol = "<<k<<" Sr = "<<sum/(double)k;
//#2
min = A[N/2][0]; max = A[N/2][0];
sum=0; k=0;
for (i=N/2;i<N;i++)
{
for (int j=0;j<M;j++)
{ if (min>A[i][j]) min=A[i][j];
if (max<A[i][j]) max=A[i][j];
sum +=A[i][j];
k++;
}
}
cout<<"\n========= # 2 ===========\n";
cout<<"\nMax = "<<max<<"\nMin = "<<min<<"\nSum = "<<sum<<" kol = "<<k<<" Sr = "<<sum/(double)k;
//#3
max=A[0][0];min=A[0][0];
sum=0; k=0;
for (i=0;i<N;i++)
{
for (int j=0;j<(M+1)/2;j++)
{ if (min>A[i][j]) min=A[i][j];
if (max<A[i][j]) max=A[i][j];
sum +=A[i][j];
k++;
}
}
cout<<"\n========= # 3 ===========\n";
cout<<"\nMax = "<<max<<"\nMin = "<<min<<"\nSum = "<<sum<<" kol = "<<k<<" Sr = "<<sum/(double)k;
//#4
max=A[0][M/2];min=A[0][M/2];
sum=0; k=0;
for (i=0;i<N;i++)
{
for (int j=M/2;j<M;j++)
{ if (min>A[i][j]) min=A[i][j];
if (max<A[i][j]) max=A[i][j];
sum +=A[i][j];
k++;
}
}
cout<<"\n========= # 4 ===========\n";
cout<<"\nMax = "<<max<<"\nMin = "<<min<<"\nSum = "<<sum<<" kol = "<<k<<" Sr = "<<sum/(double)k;
//#5
max=A[0][0];min=A[0][0];
sum=0; k=0;
cout<<"\n========= # 5 ===========\n";
for (i=0;i<N;i++)
{ for (int j=0;j<M-i;j++)
{ if (min>A[i][j]) min=A[i][j];
if (max<A[i][j]) max=A[i][j];
sum +=A[i][j];
k++;
cout<<setw(6)<<A[i][j];
}
cout<<"\n";
}
cout<<"\n========= # 5 ===========\n";
cout<<"\nMax = "<<max<<"\nMin = "<<min<<"\nSum = "<<sum<<" kol = "<<k<<" Sr = "<<sum/(double)k;
//#6
max=A[0][0];min=A[0][0];
sum=0; k=0;
cout<<"\n========= # 6 ===========\n";
for (i=0;i<N;i++)
{ for (int j=0;j<=i;j++)
{ if (min>A[i][j]) min=A[i][j];
if (max<A[i][j]) max=A[i][j];
sum +=A[i][j];
k++;
cout<<setw(6)<<A[i][j];
}
cout<<"\n";
}
cout<<"\n========= # 6 ===========\n";
cout<<"\nMax = "<<max<<"\nMin = "<<min<<"\nSum = "<<sum<<" kol = "<<k<<" Sr = "<<sum/(double)k;
//#7
max=A[0][M-1];min=A[0][M-1];
sum=0; k=0;
cout<<"\n========= # 7 ===========\n";
for (i=0;i<N;i++)
{ for (int j=0;j<M-i-1;j++)
cout<<setw(6)<<" ";
for (int j=M-i-1;j<M;j++)
{ if (min>A[i][j]) min=A[i][j];
if (max<A[i][j]) max=A[i][j];
sum +=A[i][j];
k++;
cout<<setw(6)<<A[i][j];
}
cout<<"\n";
}
cout<<"\n========= # 7 ===========\n";
cout<<"\nMax = "<<max<<"\nMin = "<<min<<"\nSum = "<<sum<<" kol = "<<k<<" Sr = "<<sum/(double)k;
//#8
max=A[0][0];min=A[0][0];
sum=0; k=0;
cout<<"\n========= # 8 ===========\n";
for (i=0;i<N;i++)
{ for (int j=0;j<i;j++)
cout<<setw(6)<<" ";
for (int j=i;j<M;j++)
{ if (min>A[i][j]) min=A[i][j];
if (max<A[i][j]) max=A[i][j];
sum +=A[i][j];
k++;
cout<<setw(6)<<A[i][j];
}
cout<<"\n";
}
cout<<"\n========= # 8 ===========\n";
cout<<"\nMax = "<<max<<"\nMin = "<<min<<"\nSum = "<<sum<<" kol = "<<k<<" Sr = "<<sum/(double)k;
//#9
max=A[0][0];min=A[0][0];
sum=0; k=0;
cout<<"\n========= # 9 ===========\n";
for(i=0;i<=(N+1)/2;i++)
{
for(j=0;j<M;j++)
{
if ((( (j<(M+1)/2)) && (i>=0 && i<=j)) ||
(( (j>=(M+1)/2))&& (i>=0 && i<=N-j-1))
)
{
if (max < A[i][j]) max = A[i][j];
if (min > A[i][j]) min = A[i][j];
sum+=A[i][j];
k++;
cout<<setw(6)<<A[i][j];
}
else cout<<setw(6)<<" ";
}
cout<<"\n";
}
cout<<"\n========= # 9 ===========\n";
cout<<"\nMax = "<<max<<"\nMin = "<<min<<"\nSum = "<<sum<<" kol = "<<k<<" Sr = "<<sum/(double)k;
//#10
max=A[0][0];min=A[0][0];
sum=0; k=0;
cout<<"\n========= # 10 ===========\n";
for(i=0;i<N;i++)
{
for(j=0;j<=(M+1)/2;j++)
{
if ((( (i<(N+1)/2)) && (j>=0 && j<=i)) ||
(( (i>=(N+1)/2))&& (j>=0 && j<=M-i-1))
)
{
if (max < A[i][j]) max = A[i][j];
if (min > A[i][j]) min = A[i][j];
sum+=A[i][j];
k++;
cout<<setw(6)<<A[i][j];
}
else cout<<setw(6)<<" ";
}
cout<<"\n";
}
cout<<"\n========= # 10 ===========\n";
cout<<"\nMax = "<<max<<"\nMin = "<<min<<"\nSum = "<<sum<<" kol = "<<k<<" Sr = "<<sum/(double)k;
//#11
max=A[0][0];min=A[0][0];
sum=0; k=0;
cout<<"\n========= # 11 ===========\n";
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
{
if ((( (j<(M+1)/2)) && ((i>=0 && i<=j) || (i>=N-j-1 && i<N))) ||
(( (j>=(M+1)/2))&& ((i>=0 && i<=N-j-1) || (i>=j && i<N)))
)
{
if (max < A[i][j]) max = A[i][j];
if (min > A[i][j]) min = A[i][j];
sum+=A[i][j];
k++;
cout<<setw(6)<<A[i][j];
}
else cout<<setw(6)<<" ";
}
cout<<"\n";
}
cout<<"\n========= # 11 ===========\n";
cout<<"\nMax = "<<max<<"\nMin = "<<min<<"\nSum = "<<sum<<" kol = "<<k<<" Sr = "<<sum/(double)k;
//#12
max=A[0][0];min=A[0][0];
sum=0; k=0;
cout<<"\n========= # 12 ===========\n";
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
{
if ((( (i<(N+1)/2)) && ((j>=0 && j<=i) || (j>=M-i-1 && j<M))) ||
(( (i>=(N+1)/2))&& ((j>=0 && j<=M-i-1) || (j>=i && j<M)))
)
{
if (max < A[i][j]) max = A[i][j];
if (min > A[i][j]) min = A[i][j];
sum+=A[i][j];
k++;
cout<<setw(6)<<A[i][j];
}
else cout<<setw(6)<<" ";
}
cout<<"\n";
}
cout<<"\n========= # 12 ===========\n";
cout<<"\nMax = "<<max<<"\nMin = "<<min<<"\nSum = "<<sum<<" kol = "<<k<<" Sr = "<<sum/(double)k;
}
Задача № 4. Задача (№ 369). Дана квадратная матрица размерностью N. Повернуть матрицу по часовой стрелке на 90, 180, 270 градусов.