有5名學生儲存在結構體陣列中,程式設計按學生的成績升序排序,按學生的姓名降序排序,按年齡從低到高排序, 成績, 年齡
typedefstruct stu {
char name[20];//儲存學生姓名
char sex;//儲存學生性別
int age;//儲存學生年齡
float score;
}Stu;
Stu stu[5] = {
{"mengmeng", 'N',38, 100},
{"shuaishuai", 'G',28, 10},
{"leilei", 'M',21, 23},
{"mingming", 'G',20, 39},
{"honghong", 'G',12, 101}
};
//輸出結構體的結構體陣列成員
void printAllStudentInfo(Stu a[],int count);//a用來接收結構體陣列, count用來接收陣列元素的個數
void sortStudentScore(Stu a[],int count);//按成績排序
void sortStudentAge(Stu a[],int count);//按年齡排序
void sortStudentName(Stu a[],int count);//按姓名排序
void printAllStudentInfo(Stu a[],int count) {
for (int i = 0; i < count; i++) {
printf
}
}//列印所有學生的資訊
void sortStudentScore(Stu a[],int count) {
Stu tempStudent = {0};
for (int i = 0; i < 4; i++) {
for (int j =0; j < 4 - i; j++) {
if (a[j].score > a[j +1
tempStudent = a[j + 1];
a[j + 1] = a[j];
a[j] = tempStudent;
}
}
}
}//按成績排序
void sortStudentAge(Stu a[],int count) {
Stu tempStudent = {0};
for (int i = 0; i < 4; i++) {
for (int j =0; j < 4 - i; j++) {
if (a[j].age > a[j +1].age) {
tempStudent = a[j + 1];
a[j + 1] = a[j];
a[j] = tempStudent;
}
}
}
}//按年齡排序
void sortStudentName(Stu a[],int count) {
Stu tempStudent = {0};
for (int i = 0; i < 4; i++) {
for (int j =0; j < 4 - i; j++) {
if (strcmp(tempStudent.name, a[i].name) <0) {
tempStudent = a[j + 1];
a[j + 1] = a[j];
a[j] = tempStudent;
}
}
}
}//按姓名排序
printf("原結構體學生列表為:\n");
printAllStudentInfo(stu,5);
printf("按學生的成績升序排序為:\n");
sortStudentScore(stu, 5);
printAllStudentInfo(stu,5);
printf("按學生的姓名降序排序排序為:\n");
sortStudentName(stu, 5);
printAllStudentInfo(stu,5);
printf("按學生的年齡從升序排序排序為:\n");
sortStudentAge(stu, 5);
printAllStudentInfo(stu,5);