The function printf() writes the data on standard output device with the ability of formatted string using %c, %d, %s, %20s .. etc and printf does not add new line after displaying text.
int printf(const char *format, ...);
puts() writes the string on standard output device and add new line after displaying text.
int puts(const char *s);