Here is what I would advise someone who wanted to learn to program a computer in C.
The comp.lang.c frequently asked questions list has references for some free ones.
Make sure your compiler works as a standard C compiler. Many (perhaps most) programs that can compile C do not act as ANSI/ISO C compiler by default. Those programs must treat standard C as a special option. If you are not compiling in standard C mode with those compilers then you are not learning C and are setting yourself up for trouble later.
I have specific notes about gcc (the Free Software Foundation's C compiler).
For my comments about or publication details of K&R see my list of recommended technical books.
I use Harbison and Steele, but the Plauger and Brodie book should be good too (Plauger was chair of the ANSI C committee).
If C is not your first imperative (a.k.a procedural) programming language then I highly recommend The Elements of Programming Style (Second edition). For bibliographic details and further comments see my list of recommended technical books.
These notes are part of my references about C programming which can be found at http://www.csd.uwo.ca/~jamie/C/index.html. I think that, in time, you'll find the other documents listed there useful too.
Created on 21 August 1996. Last update 13 September 1996.
This document is copyright by its author, J. Blustein.