Come as guests, stay as family.

I ♥ 4MGHC


Hướng dẫn sử dụng diễn đàn Với mong muốn có một Website hỏi đáp chất lượng 4MGHC đã ra đời. Đây là cộng đồng hỏi đáp dành cho lập trình viên, sinh viên, các bạn ưu thích lập trình... Việt Nam. Huy vọng các bậc tiền bối, các bằng hữu gần xa chung tay chia sẽ, giúp đỡ, giải đáp các thắc mắc trên Website. Cùng nhau củng cố, đóng góp cho sự nghiệp phát triển thông tin, công nghệ của đất nước.
Trong diễn đàn bạn có thể
  1. Hỏi đáp trong diễn đàn
  2. Đánh giá và like bài post
Đăng ký

Số người đang xem trên diễn đàn: 1133
1
  1. Tân thế giới
    Posts:
    784320
    Vote:
    2
    Like:
    3
    [c] Sắp xếp theo điểm sinh viên
    Image
    Image
    Users online on this topic: 1
    dragoncl12
    Thành viên mới
    Ngày gia nhập: 03 2007
    Bài viết: 10
    -------------------------
    [c] Sắp xếp theo điểm sinh viên
    các bạn có thể chỉ giúp cho mình cái hàm để sắp xếp sinh viên theo điểm và xếp hạng(từ cao đến thấp) được ko.xim cám ơn.
    Image 0
    Image
  2. Ký Túc Xá
    Posts:
    2533979
    Vote:
    21
    Like:
    2
    Image
    Image
    neverland87
    VIP Member
    Ngày gia nhập: 01 2007
    Bài viết: 412
    -------------------------
    Trích dẫn:
    Nguyên bản được gửi bởi dragoncl12
    Quote: Select all

    các bạn có thể chỉ giúp cho mình cái hàm để sắp xếp sinh viên theo điểm và xếp hạng(từ cao đến thấp) được ko.xim cám ơn.


    Bạn nói chung chung quá, bạn có thể nói rõ đề bài hơn 1 chút được không, điểm thì cũng phải có điểm toán,lý,hóa,gì gì đó, xếp hạng thì gồm những hạng nào.

    Về vấn đề sắp xếp, có rất nhiều giải thuật, và những cái này đã được đề cập rất nhiều trong diễn đàn. Bạn nên search để biết thêm chi tiết.
    Image 0
    Image
    Image
  3. Ký Túc Xá
    Posts:
    2533979
    Vote:
    21
    Like:
    2
    Image
    Image
    dragoncl12
    Thành viên mới
    Ngày gia nhập: 03 2007
    Bài viết: 10
    -------------------------
    à là như vầy: nhập vào danh sách n sinhviên: tên,họ,ngàysinh,điểm,giới tính và in ra danh sách sinhviên,sau đó in ra sinh viên nào có số điểm(vidụ: 9) cao nhất và xếp hạng sinh viên đứng 1,2,3...
    Image 0
    Image
    Image
  4. Ký Túc Xá
    Posts:
    2533979
    Vote:
    21
    Like:
    2
    Image
    Image
    kidkid
    XCoworker Member
    Ngày gia nhập: 10 2006
    Nơi ở: In Your Bugs
    Bài viết: 822
    -------------------------
    Uhm Hàm nhập và xuất chắc dragon làm được rồi nhỉ ?

    Còn xuất ra sinh viên cao nhất thì
    Image 0
    Image
    Image
  5. Ký Túc Xá
    Posts:
    2533979
    Vote:
    21
    Like:
    2
    Image
    Image
    phamtuananh
    Khách

    Bài viết: n/a
    -------------------------
    Chắc ý của bạn là tìm kiếm sau đó in ra rồi có phải không?

    Dùng thuật toán tìm kiếm tuyến tính đi cho đơn giản.

    còn nếu bạn giỏi hơn thì bạn dùng tìm kiếm nhị phân(phải sắp xếp theo thứ tự trước rồi mới dùng thuật toán này dc).

    Trong cuốn cấu trúc dữ liệu tập 1 có hướng dẫn hai thuật toán này chi tiết lắm!
    Image 0
    Image
    Image
  6. Ký Túc Xá
    Posts:
    2533979
    Vote:
    21
    Like:
    2
    Image
    Image
    neverland87
    VIP Member
    Ngày gia nhập: 01 2007
    Bài viết: 412
    -------------------------
    Trích dẫn:
    Nguyên bản được gửi bởi dragoncl12
    Quote: Select all

    à là như vầy: nhập vào danh sách n sinhviên: tên,họ,ngàysinh,điểm,giới tính và in ra danh sách sinhviên,sau đó in ra sinh viên nào có số điểm(vidụ: 9) cao nhất và xếp hạng sinh viên đứng 1,2,3...


    Hi, có lẽ bài này bạn dùng mảng có kiểu cấu trúc, theo như đề bài thì bạn có cấu trúc sau:

    Code:
    Code: Select all

    struct HoSo
    {
    char ten[15];
    char ho[10];
    NgayThang ngaysinh; //ngaysinh có kiểu cấu trúc ngày,tháng,năm
    float diem;
    int gioitinh; //1 là nam,0 là nữ
    }

    Nhưng vì bạn cần xếp hạng học sinh,nên mình nghĩ bạn nên thêm 1 thuộc tính hang (kiểu int) trong cấu trúc nêu trên. Lưu ý: lúc cho nhập hồ sơ của n sinh viên, bạn không cần phải nhập hạng.

    Sau khi đã nhập đầy đủ hồ sơ rồi, bạn tiến hành sắp xếp lại mảng cấu trúc theo thứ tự giảm dần (hoặc tăng dần tùy bạn).

    Giả sử mình có mảng cấu trúc: HoSo hs[100]; và dùng Bubble Sort để sắp xếp mảng này theo thứ tự tăng dựa trên chỉ số so sánh là thuộc tính diem

    Code:
    Code: Select all

    for(int i=0;i<n-1;i++)
    for (int j=i+1;j<n;j++)
    if (hs[i].diem<hs[j].diem) HoanVi(hs[i].diem,hs[j].diem);

    Hê, bây giờ bạn thừa biết như thế nào rồi đó, phần tử đầu tiên của mảng chứa học sinh có điểm số cao nhất ^ ^

    Ok,xong bước 1,bây giờ tới vụ xếp hạng, bạn chỉ cần dùng vòng lặp là ra được hạng của học sinh

    Code:
    Code: Select all

    for(int i=0;i<n;i++)
    hs[i].hang=i+1;

    Bây giờ, công việc còn lại của bạn là in ra màn hình thôi, cái này thì bạn tự lo nhé, tất nhiên là bạn có thể cải tiến chương trình của bạn hơn những gì mình đã nói.
    Image 0
    Image
    Image
  7. Ký Túc Xá
    Posts:
    2533979
    Vote:
    21
    Like:
    2
    Image
    Image
    neverland87
    VIP Member
    Ngày gia nhập: 01 2007
    Bài viết: 412
    -------------------------
    Ấy chết, ở trên mình ghi lộn hàm Bubble Sort, mình sửa lại nhé

    Code:
    Code: Select all

    for(int i=0;i<n-1;i++)
    for (int j=i+1;j<n;j++)
    if (hs[i].diem<hs[j].diem) HoanVi(hs[i],hs[j]);
    Image 0
    Image
    Image
  8. Ký Túc Xá
    Posts:
    2533979
    Vote:
    21
    Like:
    2
    Image
    Image
    dragoncl12
    Thành viên mới
    Ngày gia nhập: 03 2007
    Bài viết: 10
    -------------------------
    mình làm theo ý tưởng mà các bạn đã viết,nhưng lúc làm xong thì nó in ra lại không khớp với tên ,như nó chỉ có sắp xếp số điểm từ cao đến thấp mà thôi,tên nó không theo cùng.

    vi dụ:

    inds :tên điểm saukhisapxếp: tên điểm
    Bao 8.00 Bao 9.00

    Doan 7.00 Doan 8.00

    Dung 6.00 Dung 7.00

    Minh 9.00 Minh 6.00
    các bạn giúp sữa lại lỗi này nhé.
    Image 0
    Image
    Image
1