Sắp xếp Struct trong C
Bài tập C: Sắp xếp các Struct dựa vào bất kỳ phần tử nào của Struct
Giả sử một giải đấu thể thao sinh viên đấu vòng tròn có 10 sinh viên tham gia. Mỗi sinh viên thuộc một đội khác nhau và sinh viên có các thông tin: tên đội (tname), tên sinh viên (pname), điểm số (avg). Khai báo một mảng các sinh viên. Yêu cầu là hãy sắp xếp các sinh viên này dựa trên bất kỳ tiêu chí nào ở trên (ví dụ sắp xếp theo tên đội, tên sinh viên hoặc điểm số đạt được).
Chương trình C
Dưới đây là chương trình C để giải bài tập sắp xếp các Struct dựa vào bất kỳ phần tử nào của Struct trong C:
#include#include struct tennis { char pname[20]; char tname[20]; int avg; } player[3], temp;int main() { int i, j, n; for (i = 0; i < 3; i++) { printf("\nNhap ten nguoi choi: "); scanf("%s", &player[i].pname); printf("\nNhap ten truong: "); scanf("%s", &player[i].tname); printf("\nNhap diem so: "); scanf("%d", &player[i].avg); printf("\n"); } n = 3; for (i = 1; i < n; i++) for (j = 0; j < n - i; j++) { if (strcmp(player[j].tname, player[j + 1].tname) > 0) { temp = player[j]; player[j] = player[j + 1]; player[j + 1] = temp; } } for (i = 0; i < n; i++) { printf("\n%s\t%s\t%d",player[i].pname,player[i].tname,player[i].avg); } return(0); }
Biên dịch chương trình C trên sẽ cho kết quả:
Bài học Bài tập C phổ biến tại hoconline.club:
bai-tap-struct-trong-c.jsp
Bài viết liên quan