if i give an extra %d with nothing corresponding to it after comma ,
Why would you do that? Printf doesn't promise to work that way. If you really want to know why, write a "printf" function.
This may be strange to you, but programming is very literal. It attempts (and sometimes fails) to do what you ask, but it never promises to read your mind or intentions. Between the two of you, you are expected to be the smart one.