Заполнить матрицу линейной последовательностью - C# (195679)
Формулировка задачи:
Задание :Заполнить матрицу линейной последовательностью от левого нижнего угла по диагонали: влево - вверх.
Почему у меня в массиве все элементы равны 0, хотя переменные выводятся правильно и ошибок компилятор не выдает?
int n = 0;
Console.WriteLine("Введите размер матрицы n");
n = Convert.ToInt32(Console.ReadLine());
if (n > 0)
{
int[,] arr = new int[n + 1, n + 1];
int y = 1, x = n;
int elem = 1;
int k = 1;
int stepy = k;
int stepx = 2;
while( x != 0 )
{
for (y = 1; y == n; y++)
{
arr[x, y] = elem;
elem += stepy;
stepy++;
}
elem = arr[x, 1] + stepx;
x--;
stepx++;
k++;
stepy = k;
}
//вывод переменных для проверки
Console.WriteLine(k);
Console.WriteLine(stepx);
Console.WriteLine(stepy);
Console.WriteLine(elem);
Console.WriteLine(x); //последний х
Console.WriteLine(arr[1,1]);
/////////////////////////////////////////
Console.WriteLine("матрица:");
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
Console.Write(arr[i, j] + " ");
Console.WriteLine();
}
Console.ReadLine();
Проблема в этом фрагменте кода. Если вместо n поставить 1, то выводит первый столбец, если больше, матрица обнуляется. Почему?
for ( y = 1; y == n; y++)
{
arr[x, y] = elem;
elem = elem + stepy;
stepy++;
}Решение задачи: «Заполнить матрицу линейной последовательностью»
textual
Листинг программы
for ( y = 1; y <= n; y++)
{
arr[x, y] = elem;
elem = elem + stepy;
stepy++;
}