Con puts stampi solo una semplice stringa a "schermo" (stdout).
printf prima di stamparti una semplice stringa, la formatta a seconda del o dei parametri (alfa-numerici o altre stringhe) che gli hai passato e che hai specificato nella stringa stessa (con i vari %type).