Переписать алгоритм для определения диагоналей матрицы с использованием foreach - C#
Формулировка задачи:
Задание: Есть квадратная матрица m*n заполнить элементы над и под основной и побочными диагоналями звездочками, а слева и справа нулями, сами же диагонали заполнить суммой индексов элемента диагонали.
Сделал реализацию через обычный цикл, но она не устраивает, необходимо с помощью foreach, не могу придумать алгоритм для определения диагоналей, помогите пожалуйста.
using System; namespace test3 { class MainClass { public static void Main(string[] args) { int n; do { Console.Write("Введите n: "); int.TryParse(Console.ReadLine(), out n); } while (n <= 0); string[,] array = new string[n, n]; for (int i = 0; i < n; ++i) { for (int j = 0; j < n; ++j) { if (i == j || j == n - i - 1) { int x = (j + i); array[j, i] = x.ToString(); Console.Write("{0,3}", array[j, i]); } else if ((j > i && j < n - i - 1) || (j < i && j > n - i - 1)) { array[j, i] = "*"; Console.Write("{0,3}", array[j, i]); } else { array[j, i] = "0"; Console.Write("{0,3}", array[j, i]); } } Console.ReadLine(); } } } }
Решение задачи: «Переписать алгоритм для определения диагоналей матрицы с использованием foreach»
textual
Листинг программы
using System; using System.Linq; namespace ConsoleApp { class Program { static void Main(string[] args) { int n; do { Console.Write("Введите n: "); int.TryParse(Console.ReadLine(), out n); } while (n <= 0); string[,] array = new string[n, n]; // Внимание - костыль! Не рекомендуется к использованию в реальной жизни! foreach (int i in Enumerable.Range(0, n)) { foreach (int j in Enumerable.Range(0, n)) { if (i == j || j == n - i - 1) { int x = (j + i); array[j, i] = x.ToString(); Console.Write("{0,3}", array[j, i]); } else if ((j > i && j < n - i - 1) || (j < i && j > n - i - 1)) { array[j, i] = "*"; Console.Write("{0,3}", array[j, i]); } else { array[j, i] = "0"; Console.Write("{0,3}", array[j, i]); } } Console.ReadLine(); } } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д