Mã: static void Main(string[] args) { int[] arr = new int[5]; arr[0] = 1; arr[1] = 2; arr[2] = 3; arr[3] = 4; arr[4] = 5; Console.Write("Hay nhap vao mot so: "); int nhap = Console.Read(); if (KiemTra(arr, nhap)) Console.WriteLine("So ban nhap bi trung!!!!!"); else Console.WriteLine(nhap.ToString()); Console.ReadLine(); } static bool KiemTra(int[] arr, int compare) { bool flag = false; for (int i = 0; i < arr.Length; i++) { if (compare == arr[i]) { flag = true; break; } } return flag; } Bài toán là cho một mảng giá trị, nhập vào 1 giá trị rồi xem giá trị đó có nằm trong mảng hay ko? nếu có thì báo là trùng, còn ko thì hiện ra giá trị đó 1. Các bác coi dùm em hàm KiemTra em viết vậy đúng hay sai? Trong hàm KiemTra sẽ nhận 2 tham số: - arr: mảng int - compare: số cần so sánh nếu compare có xuất hiện trong arr thì trả về true 2. Làm sao chỉnh trong visual mà mình ko cần thêm dòng Concole.ReadLine() mà chương trình vẫn phải đợi mình bấm nút mới tắt Hình như vấn đề là khi khi em nhập vào một giá trị thì biến nhap nhận một giá trị là mã ASCII của giá trị mình nhập, thí dụ em nhập "A" thì biến nhap nhận giá trị 65 chứ không phải "A" các bác copy zề chạy thử coi có bị như zậy ko?
1. bạn thay dòng int nhap = ... bằng đoạn này Mã: int nhap = 0; try { nhap = int.Parse(Console.ReadLine()); } catch { } cái hàm kiểm tra bạn có thể dùng List<int> để kiểm tra trùng lặp nhanh hơn dùng kiểu int[] kia vì List<> có phương thức IndexOf khá hữu hiệu trong trường hợp của bạn 2. Console.ReadKey();
1. vẫn ko được @@ biến chỉ nhận giá trị ASCII, bác copy zề chạy thử coi có bị zậy ko? 2. Cái này thì ra rồi
ủa như trên thì bạn muốn kiểm tra 1 biến int có trùng trong mảng int hay ko, vậy sao bạn lại nhập vào 1 ký tự A?
cái đó em thí dụ cái vụ biến chỉ nhận giá trị ASCII, khi nhập "A" thì chỉ biến nhận giá trị "65", khi nhập 1 thi biến nhận giá trị 49 @@