I disagree! Programming is nothing like ur born with. If it was so then most of us here would have made programs to solve our Differentiation and Integration problems in High school. Its more like Maths more you practice more you learn and u can never be a true master of it 'cause one day along the line a dude will come and tip u over. Yashwant Kanitkar is the best basic book for C as all B.E colleges follow it as text book. Alternative text book can be Balagurusamy. For reference sake refer to Schildt or Kerningham and Ritchie.
i dont know which engg college uses kanetkar's book as textbook.but i am sure vtu doesn't.
if you are learning from the start ,and want to learn quickly then go for yashwant kanetkar.you can't call it a bad book.there are lot of things to learn from it.
to be frank i got inspired by that book ,and the way he explains things inspired me and dragged me into programming field.
try to read from fourth edition,there are lot of extra chapters you might be interested(hardware related) .you can find the same in his website also.
after you get the theory required try to solve more and more problems which you think could be difficult.dont go for answers available.
one disadvantage is both of them wont stress on using standard code.but you can always learn them later .imo you shd go for kanetkar