Обход матрицы диагональной змейкой - C#
Формулировка задачи:
Здравствуйте! Помогите пожалуйста разобраться, почему в коде начиная с // Обход диагональной змейкой в строке
int k = 0; выдается ошибка о том, что локальная переменная нигде не используется.
static void Main(string[] args)
{
int n = 5;
int[] A = new int[n * n];
int[,] B = new int[n, n];
Console.WriteLine("Матрица:");
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
B[i, j] = i + j + 10;
Console.Write(B[i, j] + " ");
}
Console.WriteLine();
}
int k = 0;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
A[k] = B[i, j]; //перевод в вектор
k++;
}
}
Console.WriteLine("Думерный в одномерный:");
for (int i = 0; i < B.Length; i++)
{
Console.Write(A[i] + " ");
}
{
// Обход диагональной змейкой
int z = 1;
int k = 0;
const int p = 4;
for (int k = (2 * p - 2); k >= 0; k--) // Цикл перебора диагоналей
{
for (int l = 0; l <= k; l++) // Цикл прохода по диагонали
{
int i, j;
if (k % 2 == 1) // Меняя местами i и j, изменяем направление прохода
{
i = l;
j = k - l;
}
else
{
i = k - l;
j = l;
}
if ((i < n) && (j < n)) // Проверяем попадание в квадрат
{
B[i, j] = z++;
}
}
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
Console.Write(B[i, j].ToString() + " ");
Console.WriteLine();
}
} Console.ReadKey();
}
}
}Решение задачи: «Обход матрицы диагональной змейкой»
textual
Листинг программы
int k = 0;