Как про констатировать "n"
#include
using namespace std;
int main()
{
int n;
int x=0,y=0,value=1,column=0,sum=2,n=3,ssize;
cout<<"Enter array size: ";
cin>>n;
ssize=n;
cout<
while(ssize>=10)
{
ssize/=10;
sum++;
}
bool star=false;
int array[n][n];
while(value<=n*n)
{
if(column<=n&&star==false)
{
if(!(column%2))
{
for(int i=column;i>=0;--i)///четные
{
array[y][x]=value;
value++;
if(x!=0)
{
x--;
}
y++;
}
}
else
{
for(int i=0;i<=column;++i)///нечетные
{
array[y][x]=value;
value++;
if(y!=0)
{
y--;
}
x++;
}
}
column++;
if(column==n)
{
if(!(column%2))//делится на 2
{
y=1;
x=n-1;
}
else // не делится на 2
{
y--;
x++;
}
star=true;
column--;
column--;
}
}
else
{
if(!(column%2))
{
for(int i=column;i>=0;--i)///четные
{
array[y][x]=value;
value++;
if(i==0)
{
x++;
break;
}
if(x!=0)
{
x--;
}
y++;
}
}
else
{
for(int i=0;i<=column;++i)///нечетные
{
array[y][x]=value;
value++;
if(i==column)
{
y++;
break;
}
if(y!=0)
{
y--;
}
x++;
}
}
column--;
}
}
for(y=0;y
{
for(x=0;x
{
cout.width(sum);
cout<
}
cout<
}
return 0;
}