You know what...
I took a Java course during summer. And the tasks we were given made me scream inside my head of how to NOT show the advantages of object-oriented programming...
Most of the time I just wanted to write a ****ng long main method that would simply do the program. All those method calls and null pointers and what not were driving me crazy. It obviously is more of an advantage when the coding gets more advanced, methods get longer and classes grow exponentially measured in code lines... Then it starts to be a good thing to have the code in separate objects.
But writing a program wwhich has a main method that asks for information, area size calculating method, volume calculating method AND an output method (StringTo) is just frustrating, it adds many things to code that are actually not needed and complicates the coding process quite a bit.
I wrote more complex programs in Texas Instruments TI-86 in high school. One of them prompted to feed in several variables (initial velocity, starting height, direction, mass and radius to name most important) and counted the trajectory of a ball thrown in air. It took air friction in account and used some pretty nice features of the calculator. It drew the trajectory in calculator's own parametre function screen, and then paused, and after pressing a key it printed a screen of information including maximum height, distance of impact from the start point (on x-axis), impact velocity and impact angle.
Sadly, the program memory was purged before the final exams and I forgot to write it down on more static format. I could write it again, though. It wouldn't take that much time...
I suppose it can't be that much more difficult to do C programming than programs with TI-86... learning the syntax just takes time and effort and getting fast demands a lot of time and excersizes.