Осуществить циклический сдвиг квадратной матрицы таким образом: первая строка перехлдит в последний столбец, последний столбец - в нижнюю строку, нижняя строка в первый столбец, первый столбец - в верхнюю строку и т д.
у меня получильсь так:
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
void main ()
{
clrscr (); int i, j, n, p,z,k, temp, temp2, temp3;
int a[20][20];
cout<<"Vvedite n ";
cin>>n;
//cout<<"Vvedite k ";
//cin>>p;
cout<<"Vvedite massiv"<<endl;
for (i=0; i<n; i++)
{
for (j=0; j<n; j++)
cin>>a[i][j];
}
for (i=0; i<n; i++)
{
for (j=0; j<n; j++)
cout<<" "<<a[i][j];
cout<<endl;
}
cout<<endl;
for (i=0; i<n; i++)
{
for ( z=n-1; z>0; z-=1)
{
for ( j=i, temp=a[i][j]; j<n-1-i; j++)
{
temp2=a[i][j+1];
a[i][j+1]=temp;
temp=temp2;
}
for (k=i+1; k<n-i; k++)
{
temp3=temp;
temp=a[k][j];
a[k][j]=temp3;
}
for (j--, k--; j>=i; j--)
{
temp3=temp;
temp=a[k][j];
a[k][j]=temp3;
}
for (j++, k--; k>=i; k--)
{
temp3=temp;
temp=a[k][j];
a[k][j]=temp3;
}}}
for (i=0; i<n; i++)
{
for (j=0; j<n; j++)
cout<<" "<<a[i][j];
cout<<endl;
}
getche ();
}
но преподу не нравится как идет смещение во "внутренем" квадрате.
Помогите сделать так, чтобы там смещение щло не на n-1, a на n-3