I applaud your energy, but you don't understand what programming is all about.
The rare goto is OK, but there's no need for them in TTT. C (and all programming languages to some extent), are meant to be a concise and efficient way to do something. Where accuracy is paramount, and a good interface for the user is critical, but efficiency and clarity are also important factors.
You didn't design this program, as much as you created more code, until you worked it out. I did the same thing (coded a very long TTT game), once upon a time.
Now that you know the game better, see if you can knock it down to 300 lines of code, or so. That's still a long TTT game code length, but a great improvement. ;)