Printing multiple different shapes on the same line
It really is that simple.  Your idea of putting everything into one puts() call would be an improvement, because I/O calls are relatively expensive.  Not that it really matters in this exercise.  It's just a good habit.

The second shape should be a little bit wider. =)

Note that a return 0; at the end of main() is automatically implied, as a special case.

#include &lt;stdio.h&gt;

int main() {

    puts("*********        ***          *           *\n"
         "*       *      *     *       ***         * *\n"
         "*       *     *       *     *****       *   *\n"
         "*       *     *       *       *        *     *\n"
         "*       *     *       *       *       *       *\n"
         "*       *     *       *       *        *     *\n"
         "*       *     *       *       *         *   *\n"
         "*       *      *     *        *          * *\n"
         "*********        ***          *           *");

    return 0;

}