La profesora te pidió que uses una sola "variable" (arreglo en realidad) y vos en tus lecturas estas usando dos.
No obstante, lo ideal es usar una cadena con fgets que es precisamente lo que se te esta pidiendo y de paso, es la forma correcta de hacerlo. Por lo tanto, no entiendo cual es el problema con el ejemplo que te puso Horricreu.
Especifica cual es la duda porque por lo menos yo no te he entendido todavía.
En cuanto a esto:
scanf("%s %s",&NomTit
,&ApeTit
);
Esta mal, el identificador del array es un
puntero que apunta a la primera posición de dicho arreglo. De la forma que lo haces solo funciona porque el puntero direcciona el mismo lugar que la primera referencia, intenta hacer lo mismo pero reservando memoria dinámica para el arreglo y veras el error. Lo
correcto con scanf seria:
scanf("%s %s",NomTit
,ApeTit
);
Es decir, los ampersand están de mas en este caso.
Saludos
PD: Utiliza títulos descriptivos para los posts.