Прочитать матрицу по спирали - C#
Формулировка задачи:
Ребята есть такое задание нужно прочитать матрицу по спирали
вот мои наброски)) но тут читает только по строкам
есть два варианта решений один рабочий один только задумка
в первом мы используем col row directon switch и тд
во втором можно сделать так? чтоб сначала читать первую строчку
потом поворачивать матрицу на 270(ну или на 90 против часовой)
и читать строчки в таком порядке прочитал,удалил,перевернул
Какой из вариантов более рабочий?? и немножко надо помочь реализовать эти варианты)))
char[,] num = new char[4, 4] { { 'I', 'L', 'O', 'V' }, { 'A', 'R', 'L', 'E' }, { 'E', '!', 'Y', 'E' }, { 'D', 'C', 'I', 'P' } };
for (int k = 0; k < num.GetLength(0); k++)
{
for (int z = 0; z < num.GetLength(1); z++)
{
Console.Write(num[k, z] + " ");
}
Console.WriteLine();
}
Console.WriteLine();
for (int i = 0; i < num.GetLength(1); i++)
{
for (int j = 0; j < num.GetLength(0); j++)
{
if (num[i, 0] > 1)
{
Console.Write(num[i, j]+" ");
}
}
}Решение задачи: «Прочитать матрицу по спирали»
textual
Листинг программы
char[,] num = new char[4, 4] { { 'I', 'L', 'O', 'V' }, { 'A', 'R', 'L', 'E' }, { 'E', '!', 'Y', 'E' }, { 'D', 'C', 'I', 'P' } };
char[,] num2=new char[4,4];
for (int k = 0; k < 4; k++)
{
for (int z = 0; z < 4; z++)
{
Console.Write(num[k, z] + " ");
}
Console.WriteLine();
//Console.WriteLine(num[k, 0]);
}
Console.WriteLine();
for (int i = 0; i < 4; i++)
{
for (int j = 1; j < 4; j++)
{
num2[i, j] = num[j, (4 - i - 1)];
Console.Write(num2[i, j] + " ");
}
Console.WriteLine();
}
Console.WriteLine();
Console.WriteLine();
for (int i = 0; i < 3; i++)
{
for (int j = 1; j < 4; j++)
{
num2[i, j] = num[(4 - i - 1), (4 - j - 1)];
Console.Write(num2[i, j] + " ");
}
Console.WriteLine();
}
Console.WriteLine();
for (int i = 0; i < 3; i++)
{
for (int j = 1; j < 3; j++)
{
num2[i, j] = num[4 - j - 1, i];
Console.Write(num2[i, j] + " ");
}
Console.WriteLine();
}
Console.WriteLine();
for(int i = 1; i < 3; i++)
{
for(int j = 1; j < 3; j++)
{
Console.Write(num2[j,4- i-1]);
}
Console.WriteLine();
}
Console.WriteLine();
for (int i = 1; i < 2; i++)
{
for (int j = 1; j < 3; j++)
{
Console.Write(num2[3-j,i]);
}
Console.WriteLine();
}
Console.WriteLine();
for (int i = 1; i < 2; i++)
{
for (int j = 2; j < 3; j++)
{
Console.Write(num2[3 - j, i]);
}
Console.WriteLine();
}