La scanf scritta così prende solo la prima parola.
Dopo lo spazio non piglia più niente, e per giunta ti lascia stdin sporco.
Fossi in te mi andrei a studiare per bene lo standard IO ANSI C.

Comunque si usa, fgets() per mettere tutto ciò che prendi in input in un buffer e poi sscanf per scannare parola per parola.

CIAO !!!