Xin chào các anh chị, chả là e có viết 1 đoạn sắp xếp như sau ạ:
Xin hỏi các bác, giờ e cần sắp xếp theo thứ tự
1
1a
3
4
5
10
thì làm thế nào ạ, xin các bác chỉ giáo ạ
Cám ơn các bác nhiều ạ
nhưng đến khi chạy xong thì nó ra như sau ạ:
(cái ông số 10 nó lại nằm giữa 1 và 1a)Sắp xếp dữ liệu
Moderators: tungblt, vuathongtin
-
- Thành viên chính thức
- Posts: 10
- Joined: Thu 15/03/2018 2:49 pm
- Has thanked: 4 times
Re: Sắp xếp dữ liệu
Bạn cần rõ ràng kiểu dữ liệu Chuỗi (String) và Số (Integer/Double/...).
Trong code của bạn ở trên, bạn khai báo mảng String và gán cho nó các số (5,4,10,1,3) và chuỗi "1a". Sau khi gán, các số của bạn sẽ tự động được chuyển thành chuỗi ký tự ("5", "4", "10", "1", "3").
Hàm Array.Sort sắp xếp mảng ký tự cho kết quả như vậy là hoàn toàn chính xác.
Để sắp xếp mảng String mà lại tăng dần theo kiểu mảng Số thì cần mẹo một chút, tùy thực tế.
Trong ví dụ của bạn nên khai báo là mảng Double.
Dim arr(5) As Double
arr(0) = 5
arr(1) = 4
arr(2) = 10
arr(3) = 1.1 'Thay cho "1a"
arr(4) = 1
arr(5) = 3
Array.Sort(arr)
...
Trong code của bạn ở trên, bạn khai báo mảng String và gán cho nó các số (5,4,10,1,3) và chuỗi "1a". Sau khi gán, các số của bạn sẽ tự động được chuyển thành chuỗi ký tự ("5", "4", "10", "1", "3").
Hàm Array.Sort sắp xếp mảng ký tự cho kết quả như vậy là hoàn toàn chính xác.
Để sắp xếp mảng String mà lại tăng dần theo kiểu mảng Số thì cần mẹo một chút, tùy thực tế.
Trong ví dụ của bạn nên khai báo là mảng Double.
Dim arr(5) As Double
arr(0) = 5
arr(1) = 4
arr(2) = 10
arr(3) = 1.1 'Thay cho "1a"
arr(4) = 1
arr(5) = 3
Array.Sort(arr)
...
Nhận code VB.NET theo yêu cầu