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 ...
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<stdio.h>
#include<string.h>
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("
Nhap ten nguoi choi: ");
scanf("%s", &player[i].pname);
printf("
Nhap ten truong: ");
scanf("%s", &player[i].tname);
printf("
Nhap diem so: ");
scanf("%d", &player[i].avg);
printf("
");
}
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("
%s %s %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ả:

Loạt bài Bài tập C có giải của chúng tôi một phần dựa trên Tutorialspoint.com
Follow fanpage của team hoặc facebook cá nhân Nguyễn Thanh Tuyền để tiếp tục theo dõi các loạt bài mới nhất về Ngữ pháp tiếng Anh, luyện thi TOEIC, Java,C,C++,Javascript,HTML,Python,Database,Mobile ... mới nhất của chúng tôi.
Bài học Bài tập C phổ biến tại vietjack.com: