Hola, el código está bien. Te dejo otra manera de hacerlo con desplazamientos y máscaras a nivel de bit por si te apetece echarle un vistazo:
Saludos!
Código (c) [Seleccionar]
#include <stdio.h>
int main(void)
{
int number;
printf("[+] Numero decimal: ");
scanf("%d", &number);
if (number < 0 || number > 255) {
printf("[+] Rango permitido de 0 a 255\n");
return 0;
}
int i;
printf("[+] Resultado: ");
for (i=7; i>=0; i--) printf("%d", (number>>i)&1);
printf("\n");
return 0;
}
Saludos!