Практикум по курсу "Алгоритмизация и программирование". Часть 1. Андрианова А.А - 86 стр.

UptoLike

Попробуйте ввести меньший размер.");
return;
}
int x = 1, y = 1, k = 1;
while(k < n * n)
{
// направление слева направо
while(x + y <= n)
{
a[x - 1, y - 1] = k;
k++;
y++;
}
// направление сверху вниз
while(x < y)
{
a[x - 1, y - 1] = k;
k++;
x++;
}
// направление справа налево
while(x + y > n + 1)
{
a[x - 1, y - 1] = k;
k++;
y--;
}
// направление снизу вверх
while(x > y)
{
a[x - 1, y - 1] = k;
k++;
x--;
}
if (k <= n * n)
{
x++; y++;
}
}
// ставим последний элемент,
// если он еще не установлен (n - нечетно)
if(k <= n * n)
a[x - 1, y - 1] = k;
Console.WriteLine("Полученная матрица:");
for (x = 0; x < n; x++)
{
for (y = 0; y < n; y++)
Console.Write("{0}\t", a[x, y]);
Console.WriteLine();
}
}
}
}
                                    Попробуйте ввести меньший размер.");
                 return;
              }
            int x = 1, y = 1, k = 1;
            while(k < n * n)
            {
                     // направление слева направо
                     while(x + y <= n)
                     {
                           a[x - 1, y - 1] = k;
                           k++;
                           y++;
                     }
                     // направление сверху вниз
                     while(x < y)
                     {
                           a[x - 1, y - 1] = k;
                           k++;
                           x++;
                     }
                     // направление справа налево
                     while(x + y > n + 1)
                     {
                           a[x - 1, y - 1] = k;
                           k++;
                           y--;
                     }
                     // направление снизу вверх
                     while(x > y)
                     {
                           a[x - 1, y - 1] = k;
                           k++;
                           x--;
                     }
                 if (k <= n * n)
                 {
                     x++; y++;
                 }

               }
               // ставим последний элемент,
               // если он еще не установлен (n - нечетно)
               if(k <= n * n)
                     a[x - 1, y - 1] = k;
             Console.WriteLine("Полученная матрица:");
             for (x = 0; x < n; x++)
             {
                 for (y = 0; y < n; y++)
                     Console.Write("{0}\t", a[x, y]);
                 Console.WriteLine();
             }
        }
    }
}