Untitled
unknown
csharp
6 days ago
2.9 kB
2
Indexable
using System; using System.Collections.Generic; using System.Linq; public class BaiTap53 { public static void Main(string[] args) { Console.OutputEncoding = System.Text.Encoding.UTF8; Console.InputEncoding = System.Text.Encoding.UTF8; Console.WriteLine("In ma trận vuông theo đường xoắn ốc"); int capN; double[,] maTranVuong; Console.Write("Nhập cấp N của ma trận vuông (N > 0): "); while (!int.TryParse(Console.ReadLine(), out capN) || capN <= 0) { Console.Write("Cấp ma trận không hợp lệ. Nhập lại N: "); } maTranVuong = new double[capN, capN]; Console.WriteLine("\nNhập các phần tử của ma trận vuông:"); for (int i = 0; i < capN; i++) { for (int j = 0; j < capN; j++) { Console.Write($"Nhập phần tử maTran[{i},{j}]: "); while (!double.TryParse(Console.ReadLine(), out maTranVuong[i, j])) { Console.Write($"Giá trị không hợp lệ. Nhập lại maTran[{i},{j}]: "); } } } Console.WriteLine("\n--- KẾT QUẢ IN XOẮN ỐC ---"); List<double> ketQuaXoanOc = new List<double>(); int hangBatDau = 0, hangKetThuc = capN - 1; int cotBatDau = 0, cotKetThuc = capN - 1; while (hangBatDau <= hangKetThuc && cotBatDau <= cotKetThuc) { // 1. Duyệt hàng trên cùng từ trái sang phải for (int j = cotBatDau; j <= cotKetThuc; j++) { ketQuaXoanOc.Add(maTranVuong[hangBatDau, j]); } hangBatDau++; // Di chuyển biên trên xuống // 2. Duyệt cột phải cùng từ trên xuống dưới for (int i = hangBatDau; i <= hangKetThuc; i++) { ketQuaXoanOc.Add(maTranVuong[i, cotKetThuc]); } cotKetThuc--; // Di chuyển biên phải vào // 3. Duyệt hàng dưới cùng từ phải sang trái (nếu còn hàng) if (hangBatDau <= hangKetThuc) { for (int j = cotKetThuc; j >= cotBatDau; j--) { ketQuaXoanOc.Add(maTranVuong[hangKetThuc, j]); } hangKetThuc--; // Di chuyển biên dưới lên } // 4. Duyệt cột trái cùng từ dưới lên trên (nếu còn cột) if (cotBatDau <= cotKetThuc) { for (int i = hangKetThuc; i >= hangBatDau; i--) { ketQuaXoanOc.Add(maTranVuong[i, cotBatDau]); } cotBatDau++; // Di chuyển biên trái vào } } Console.WriteLine(string.Join(", ", ketQuaXoanOc)); } }
Editor is loading...
Leave a Comment