#include <iostream>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define STD_LENGTH 20
#define NUM 4
using namespace std;
struct Date {
int nYear;
int nMonth;
int nDay;
};
struct StudentEx {
unsigned ID;
char szName[20];
float fGPA;
Date Birthday;
};
struct Student {
unsigned ID;
char szName[20];
float fGPA;
};
struct Student MyClass[NUM] = {
{1234,"TOM",3.78},
{1238,"JACK",3.25},
{1232,"MARY",4.00},
{1237,"JONE",2.78}
};
int CompareID(const void* elem1, const void* elem2) {
Student* ps1 = (Student*)elem1;
Student* ps2 = (Student*)elem2;
return ps1->ID - ps2->ID;
}
int CompareName(const void* elem1, const void* elem2) {
Student* ps1 = (Student*)elem1;
Student* ps2 = (Student*)elem2;
return strcmp(ps1->szName ,ps2->szName);
}
int main()
{
qsort(MyClass, NUM, sizeof(Student), CompareID);
for (size_t i = 0; i < NUM; i++)
printf("%s\t", MyClass[i].szName);
cout << endl;
qsort(MyClass, NUM, sizeof(Student), CompareName);
for (size_t i = 0; i < NUM; i++)
printf("%s\t", MyClass[i].szName);
return 0;
}