La forma mas sencilla es utilizando un array de caracteres para ahí almacenar cada uno de los dígitos, eso mas calcular su numero lo relegas a la función sprintf.
Un ejemplo del uso de esa funcion:
Por supuesto debes considerar que los dígitos se almacenan como caracteres. Antes de procesarlos debes restarles '0' para en base al carácter obtener el numero:
El resto es verificar si el numero de dígitos es par o impar, eso lo realizas mediante el operador de modulo. Finalmente realizas la división con el operador del mismo nombre.
Un saludo
Un ejemplo del uso de esa funcion:
Código (c) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char digito[33]; /* 33 == ALGUN_VALOR */
int num_digitos;
int numero = 5694;
int i;
num_digitos = sprintf(digito, "%d", numero);
printf("Numero de digitos: %d\n", num_digitos);
for (i = 0; i < num_digitos; i++)
printf("%c\n", digito[i]);
return EXIT_SUCCESS;
}
Por supuesto debes considerar que los dígitos se almacenan como caracteres. Antes de procesarlos debes restarles '0' para en base al carácter obtener el numero:
Código [Seleccionar]
'0' - '0' == 0
'1' - '0' == 1
'2' - '0' == 2
...
El resto es verificar si el numero de dígitos es par o impar, eso lo realizas mediante el operador de modulo. Finalmente realizas la división con el operador del mismo nombre.
Un saludo