[HW] 02.Multidimensional Arrays - Problem 1


0

Здравейте!

Някой, справил се със задачата може ли да даде примерно решение, че така и не успях да се справя...

Поздрави




Отговори



0

Здравей,

Това е моето решение:

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FillMatrix { class FillMatrix { static void Main() { int n = int.Parse(Console.ReadLine()); string type = Console.ReadLine(); int[,] matrix = new int[n,n]; int count = 1; if (type == "a") { for (int c = 0; c < matrix.GetLength(0); c++) { for (int r = 0; r < matrix.GetLength(1); r++) { matrix[r, c] = count++; } } } else if (type == "b") { for (int c = 0; c < matrix.GetLength(0); c++) { if (c%2==0) { for (int r = 0; r < matrix.GetLength(1); r++) { matrix[r, c] = count++; } } else { for (int r = matrix.GetLength(1)-1; r >=0; r--) { matrix[r, c] = count++; } } } } else if (type == "c") { for (int r = n-1; r >= 0; r--) { int row = r; int col = 0; while (row < n && col < n) { matrix[row, col] = count++; row++; col++; } } for (int r = 1; r < n; r++) { int row = 0; int col = r; while (row < n && col < n) { matrix[row, col] = count++; row++; col++; } } } else { int cube = n; int r = 0; int c = 0; while (cube > 0) { for (int i = 0; i < cube; i++) { matrix[r, c] = count++; r++; } r--; c++; for (int i = 0; i < cube -1; i++) { matrix[r, c] = count++; c++; } c--; r--; for (int i = 0; i < cube - 1; i++) { matrix[r, c] = count++; r--; } r++; c--; for (int i = 0; i < cube -2; i++) { matrix[r, c] = count++; c--; } r++; c++; cube -= 2; } } //output for (int r = 0; r < matrix.GetLength(0); r++) { for (int c = 0; c < matrix.GetLength(1); c++) { Console.Write("{0}", matrix[r,c]); if (c!= matrix.GetLength(1)-1) { Console.Write(" "); } } Console.WriteLine(); } } } }


от perro (7 точки)