Especificador dinámico de formato flotante en C

¿Hay alguna forma de tener un especificador de formato flotante incorporado por el usuario? Por ejemplo, si imprimo esto.

float c = 15.0123
printf("%.2f", c);

// outputs: 15.01

¿Cómo puedo asignar el número de decimales a una variable? Me gusta

int n = 3;
float c = 15.0123
printf("%.(%i)f", n, c);

// outputs: 15.012

Respuestas a la pregunta(4)

Su respuesta a la pregunta