Creo que en cuanto a lógica o sintaxis todo esta correcto.
Lo que pasa es que acabas de cometer un error muy sencillo, estas asumiendo que scanf va a ignorar los espacios en blanco.
Por ejemplo si escribes en la pregunta "100 200s" va a hacer justo lo que le pides. Lee un entero, lee el siguiente entero y lee el carácter que siga de ese entero.
Mientras lo que tu quieres es, lee un entero, leer otro entero y lee el siguiente carácter que no sea blanco.
Volviendo a tu código hagamos un poco de debuggin manual.
Esto se supone que es lo que teclearas: "100\n200\ns" (comillas para clarificación, realmente no son usadas) (\n significa enter).
Código:
// Primer scan
// "100\n200\ns"
scanf("%d", &a);
// Segundo scan
// a = 100
// "\n200\ns"
scanf("%d", &b);
// Tercer scan
// a = 100, b = 200
// "\ns"
scanf("%c", &c);
// Despues del tercer scan
// a = 100, b = 200, c = '\n'
// "s"
Mi sugerencia es pon un simple espacio al principio, eso consumirá todos los caracteres blancos.