Từ 1 tới 5 trên tổng số 5 kết quả

Đề tài: Cánh sắp sếp 1 mảng struct trong đó có xâu kí tự

  1. #1
    Ngày gia nhập
    10 2010
    Bài viết
    249

    Mặc định Cánh sắp sếp 1 mảng struct trong đó có xâu kí tự

    Mình có 1 mảng struct như thế này?
    C Code:
    1. struct a
    2. {
    3.     int number;
    4.     char[30] ten;
    5. }A[30];

    number bất kì từ 1 - 100 chẳng hạn(để sắp xếp thôi mà). Mình muốn hỏi là để sắp xếp mảng trên tăng dần theo number thì mình làm thế nào.
    mình làm thế này không được vì nó không cho gán xâu như thế. AI có cách giải quyết vấn đề này giúp mình với.

    C Code:
    1. int i,j;
    2. int tam;
    3. char[30] tam2;
    4. for (i= 0; i < 29 ; i++)
    5.     for (j = 0;  <30; j++ )
    6.     {
    7.         if (A[i].number < A[j].number)
    8.         {
    9.             tam = A[i].number;
    10.             A[i].number = A[j].number;
    11.             A[j].number = tam;
    12.             tam2 = A[i].ten;
    13.             A[i].ten = A[j].ten;
    14.             A[j].ten = tam2;
    15.              }
    16.          }
    17.      }
    Bôi đen để thấy chữ kí
    Có biết kí đâu mà có chữ kí chứ

  2. #2
    Ngày gia nhập
    03 2010
    Nơi ở
    Nơi nào đó trong vũ trụ
    Bài viết
    550

    Tách biệt ra thành các hàm cho dễ hình dung. Ví dụ:
    C Code:
    1. int sosanh(struct A x, struct A y);
    2. //Hàm này trả về 1 nếu x lớn hơn y, -1 nếu x nhỏ hơn y, và 0 nếu x bằng y
    3. //Tiêu chuẩn so sánh thì tùy bạn định nghĩa.
    4.  
    5. void hoandoi(struct A *x,struct A *y);
    6. //Dùng để đổi chổ 2 giá trị x và y

    Rồi sau đó bạn áp dụng các phương pháp sắp xếp như bình thường, trong phương pháp đó bạn gọi tới các hàm này để thực hiện so sánh và hoán chuyển các vị trí.
    Gió thu lạnh lẽo hắt hiu lòng!

  3. #3
    Ngày gia nhập
    10 2010
    Bài viết
    249

    cái này là hoán đổi cả struct luôn hả bác? Code vd hộ em tý dc ko?
    Bôi đen để thấy chữ kí
    Có biết kí đâu mà có chữ kí chứ

  4. #4
    Ngày gia nhập
    03 2010
    Nơi ở
    Nơi nào đó trong vũ trụ
    Bài viết
    550

    C Code:
    1. //Hàm này trả về 1 nếu x lớn hơn y, -1 nếu x nhỏ hơn y, và 0 nếu x bằng y
    2. //Tiêu chuẩn so sánh thì tùy bạn định nghĩa.
    3. int sosanh(struct A x, struct A y)
    4. {
    5.     if (x.number > y.number) return 1;
    6.     else if (x.number < y.number) return -1;
    7.     else return 0;
    8. }
    9.  
    10. //Dùng để đổi chổ 2 giá trị x và y
    11. void hoandoi(struct A *x,struct A *y)
    12. {
    13.     struct A tmp;
    14.     //Sao lưu giá trị của x vào biến tạm tmp
    15.     tmp.number =  x->number;
    16.     strcpy(tmp.ten,x->ten);
    17.     //Gán giá trị của y vào x
    18.     x->number = y->number;
    19.     strcpy(x->ten,y->ten);
    20.     //Gán giá trị của tmp vào y
    21.     y->number = tmp.number;
    22.     strcpy(y->ten,tmp.ten);
    23. }
    Gió thu lạnh lẽo hắt hiu lòng!

  5. #5
    Ngày gia nhập
    10 2010
    Bài viết
    249

    Em làm thế này có oko không nhi?
    C Code:
    1. #include<stdio.h>
    2. #include<string.h>
    3. int main()
    4. {
    5.     char string1[] = "string_1";
    6.     char string2[] = "string_2";
    7.     char tam[30];
    8.     strcpy(tam, string1 );
    9.     strcpy(string1,string2);
    10.     strcpy(string2,tam);
    11.     printf("%s %s", string1, string2);
    12. }
    Bôi đen để thấy chữ kí
    Có biết kí đâu mà có chữ kí chứ

Các đề tài tương tự

  1. Gửi struct thông qua socket có khác nhau giữa gửi từng field và gửi cả struct?
    Gửi bởi bptvip_pro trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 7
    Bài viết cuối: 12-05-2013, 02:35 AM
  2. Bài tập C++ làm sao truy xuất biến của struct lồng trong struct
    Gửi bởi quangnam.tamky trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 10-04-2013, 05:22 PM
  3. Lập trình C++ Giúp đỡ về điểm khác nhau giữa struct và typedef struct
    Gửi bởi huydang2410 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 27-02-2013, 10:30 AM
  4. Khác nhau giữa struct trong c và struct trong c++
    Gửi bởi nhutlv01 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 17-02-2012, 09:12 AM
  5. Lỗi không xử lý giá trị struct (trong if else)
    Gửi bởi duyanh_28 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 5
    Bài viết cuối: 25-05-2011, 12:13 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn