const
int
dimension
=
7
;
void make_zigzag( int n, int a[][dimension])
... {
int i = 0, j= 0;
int num = 0;
while (1)
...{
while (i>= 0 && j<= n-1)
...{
a[i--][j++] = num++;
}
if (i<0 && j< n)
...{
i=0;
}
if (j == n)
...{
j = n-1;
i += 2;
}
while ( j >= 0 && i<= n-1)
...{
a[i++][j--] = num++;
}
if ( j < 0 && i< n)
...{
j= 0;
}
if (i == n)
...{
i = n-1;
j += 2;
}
if ( i == n-1 && j == n-1 )
...{
a[i][j] = num;
break;
}
}
}
void make_zigzag( int n, int a[][dimension])
... {
int i = 0, j= 0;
int num = 0;
while (1)
...{
while (i>= 0 && j<= n-1)
...{
a[i--][j++] = num++;
}
if (i<0 && j< n)
...{
i=0;
}
if (j == n)
...{
j = n-1;
i += 2;
}
while ( j >= 0 && i<= n-1)
...{
a[i++][j--] = num++;
}
if ( j < 0 && i< n)
...{
j= 0;
}
if (i == n)
...{
i = n-1;
j += 2;
}
if ( i == n-1 && j == n-1 )
...{
a[i][j] = num;
break;
}
}
}