Scanf Basics: the good, the bad, and why so many pointers?