jajajaja me acuerdo de mis inicios con C me paso igual y también me tire un rato dando vueltas... jajaja.
Simplemente, pon un espacio delante de %c en el scanf así:
scanf(" %c", &respuesta);
Esto es debido a como c realiza la conversión, No se muy bien a que es debido, pero tiene que ver con el contenido del buffer de entrada del teclado, al poner un espacio delante c, se salta el carácter que hay en el buffer y ya coge el nuevo carácter introducido. Mas o menos...
A ver si alguien nos lo aclara mejor. el caso es que cuando vas a leer caracteres por teclado con la función scanf hay que dejar un caracter en blanco delante del formato de conversión %c.
Te encontrarás con muchas cosas de este tipo en c, no te desesperes, y siempre que no te funcione algo, haz algún debug, si tras la inserción del carácter hubieras echo un printf del carácter capturado, te habrías dado cuenta que no estaba capturando el caracter 's' , sino que estaba cogiendo el que tenia en el buffer.
Bueno un saludo y a darle caña que ya no hay muchos valientes que se atrevan con C, jaja.