> should i get like, a degree in programming with the major being C Programming before posting a question on this board?
No, it's just your "I'll do it my way" attitude which is the problem. You seem uninterested in actually learning anything better or new ways of doing stuff.

> because it seems that anything that i produce from what i've been taught is being criticised
gets() and scanf() are the first things you probably learnt, and through the path of least resistance you're reluctant to let go of them and use things which are safer.

Also, pretty much all the regulars here know that most "teachers" actually suck as both programmers and teachers, and many of the books which they recite from also suck. Don't take this as a reflection on you, just the general suckyness of the entire education system for programmers. Teachers just give you a start, the real learning is from practical experience and other programmers.

When programming professionally, code is typically reviewed by a group of your peers, so you shouldn't feel bad about other people looking at your code and making suggestions. If you ever join an open source development, then many more programmers will get to look at your code (and change it). So you really should strive to be the best you can be rather than just being adequate for the immediate problem.

> i didn't know that scanf() was bad to use ?
Not so much as bad, but far too tricky to use properly. As such, when you start doing things a little more advanced, newbies usually show up with some kind of "it's ignoring my input" type question.

> I use the Dev-C++ IDE which I BELIEVE, uses the gcc compiler.
gcc -W -Wall -ansi -pedantic -O2
Go into the compiler settings, and find where you can add additional compiler options. Set the flags above and see what happens.