¿Y que pasa si el número tiene quince cifras?. Casi se te acabaría el abecedario, por no hablar de la longitud del código.
Este es un caso típico para usar un bucle o una función recursiva o, como en el caso que te propongo, tomar el número como cadena e ir transformando cada uno de los dígitos:
Claro que si lo que queremos es exclusivamente imprimir las cifras esto irá mejor, puedes meter cuantas cifras quieras:
Este es un caso típico para usar un bucle o una función recursiva o, como en el caso que te propongo, tomar el número como cadena e ir transformando cada uno de los dígitos:
Citar
Escribe un numero de 20 digitos como maximo: 12345678901234567890
Digitos: 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
Código (cpp) [Seleccionar]
#include <stdio.h>
#define N 19
int main( void )
{
int c, i, n;
int digitos[N];
unsigned long long int num;
printf( "Escribe un numero de %d digitos como maximo: ", N );
fflush( stdout );
num = 0;
for( n = 0; n < N && (c = getchar()) != '\n'; n++ )
{
digitos[n] = c - '0';
num *= 10;
num += digitos[n];
}
printf( "Digitos: " );
for( i = 0; i < n; ++i )
printf( " %3d,", digitos[i] );
return 0;
}
Claro que si lo que queremos es exclusivamente imprimir las cifras esto irá mejor, puedes meter cuantas cifras quieras:
Código (cpp) [Seleccionar]
#include <stdio.h>
#define N 100
int main( void )
{
int i, n;
char digitos[N];
printf( "Escribe un numero de %d digitos como maximo: ", N );
fflush( stdout );
scanf ("%s",digitos);
/*cuento los digitos*/
for (n=0;digitos[n]!='\0';n++);
/*los imprimo*/
for (i=0;i<n;i++)
printf ("%3c",digitos[i]);
return 0;
}
¡¡¡¡ Saluditos! ..... !!!!