Because you do this:
char StudentName[100];
This condition will always pass:
if (StudentName!=0) {
Because
StudentName
is an array, and in C the name of an array is a pointer to the first element. Pointers are always non-zero when they are valid, so your condition cannot fail.
At the moment, you have one loop - to get three items from the user and average them. To repeat this for a second, or third, or fourth student, you need a second loop around the "get a student name and work out the average" code. Probably, replacing the if line I mentioned above with an appropriate while loop and adding a "do you want another student?" question and response at the bottom of the loop would do what you want - but this is your homework, not mine; so I'll give you no code!