If you get into the habit of typing such things in pairs, say
Code:
/**/
for(;;){
printf("");
}
Then you'll know the things are always going to be balanced before you do anything else.
What's more, you can map out the overall structure of a function with just empty blocks like this, and it will compile.
There's nothing worse than lots of crappy indented code with missing braces, closing comments or whatever.
Code:
void foo ( )
{
/* blah blah */
for ( more blah )
{
/* lots of blah
if ( some other blah )
{
}
Sure you can add a brace or two, but was that if() really part of the for loop or not?
And is it still part of the for loop when you've finished guessing where the braces go. Sure there are plenty of options when it comes to making the thing compile, but only one combination will make the code do what you want.