Заполнить матрицу линейной последовательностью - 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++;                        
                    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.786 из 5
Похожие ответы