/* qsort example */ #include #include typedef struct tableEntry tableType; struct tableEntry { int num; char *wrd; }; tableType *table; int tableSize; void readTable() { int i,j,k; char buffer[81]; scanf("%d",&tableSize); table=(tableType*) malloc(tableSize*sizeof(tableType)); if (!table) { printf("malloc fail\n"); exit(0); } for (i=0;inum - y->num; } void sortByNumber() { qsort((void*) table,tableSize,sizeof(tableType),numCompare); } int strCompare(x,y) tableType *x,*y; { return strcmp(x->wrd,y->wrd); } void sortByWord() { qsort((void*) table,tableSize,sizeof(tableType),strCompare); } int revStrCompare(x,y) tableType *x,*y; { return strcmp(y->wrd,x->wrd); } void reverseSortByWord() { qsort((void*) table,tableSize,sizeof(tableType),revStrCompare); } main() { readTable(); printf("Input:\n"); printTable(); sortByNumber(); printf("Sorted by number:\n"); printTable(); sortByWord(); printf("Sorted by word:\n"); printTable(); reverseSortByWord(); printf("Reverse sorted by word:\n"); printTable(); }