There are many ways to do this. What about the idea to use linked list and insert new names in correct place every time it is entered? Or even better would be binary tree. Or use some array of pointers to swap pointer values instead of struct values you can do it in this program too no?
WaltP commented: Yes, if you program properly, there will be no holes. +14