Actually, my copy of the second edition K&R seems to have the opening brackets on new lines when it comes to function declarations, so:
main () {
but: while (){ and: if(){
I don't have a copy of the first edition at hand but I seem to remember that it uses this same style.
//msl
The first edition has opening brackets for functions on a new line. It also used a space before parenthesis for while loops and conditionals. Return types, when required, were on the same line as a function name.
I can't stand looking at braces on new lines. It is all from back when a new line was something to be treasured as displays were bad.