Заполнить матрицу линейной последовательностью - 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++; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д