Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Dacan en 28 Marzo 2013, 05:50 am



Título: Digitos de un numero en C
Publicado por: Dacan en 28 Marzo 2013, 05:50 am
Como puedo obtener el ultimo digito de un numero en c o como puedo obtener todos los digitos de un numero en c?

Pues se que dividiendo entre 10 se pueden ir obteniendo los digitos pero como obtengo el ultimo?

Saludos,


Título: Re: Digitos de un numero en C
Publicado por: Maik33 en 28 Marzo 2013, 08:48 am
No se si he entendido bien. Lo que quieres es:
Teniendo este numero por ejemplo :384 tener por un lado el 3 por otro el 8 y por ultimo el 4.

Si es eso usando el modulo y la division.

El proceso seria:
 - 384 % 10 haces el modulo y ya tienes el 4
 - 384 / 10 haces la division entera y ahora el numero vale 38
 - 38 % 10 Otra vez el modulo y ya tienes el 8
 - 38 / 10 Otra vez division entera y el numero te queda 3
 - 3 % 10 Los mismo, consigues 3
 - 3 / 10 Y ahora como la division te va ha dar 0, se acaba y consigues los 3 numero separados


Título: Re: Digitos de un numero en C
Publicado por: antraXactive en 28 Marzo 2013, 13:21 pm
Puedes ir dividiendo entre 10 y con el condicional del bucle en numero>=1 o utilizar la función atoi() para pasar el numero a un array


Título: Re: Digitos de un numero en C
Publicado por: 85 en 28 Marzo 2013, 15:16 pm
http://foro.elhacker.net/programacion_cc/programa_para_pasar_de_numero_decimal_a_coma_flotante-t385432.0.html;msg1836860#msg1836860

yo había hecho algo así, pero la idea de Maik33 tiene mucho sentido también.
otra cosa es que esto es descomponer en unidades y no factorizar, porque factorizar es otra cosa. Te digo porque en ese código la función se llama 'Factorizar' pero lo que hace es descomponer en unidades.
Factorizar es descomponer en números o en factores, que multiplicados todos dan como resultado el número inicial.


Título: Re: Digitos de un numero en C
Publicado por: leosansan en 28 Marzo 2013, 15:39 pm
............... como puedo obtener todos los digitos de un numero en c?

Pues se que dividiendo entre 10 se pueden ir obteniendo los digitos pero como obtengo el ultimo?


Y por qué no multiplicando:

Código
  1. #include <stdio.h>
  2. #define N 10
  3.  
  4. int main( void )
  5. {
  6.   int c, i, n;
  7.   int digitos[N];
  8.   int num;
  9.  
  10.   printf( "Escribe un numero de %d digitos como maximo: ", N );
  11.   fflush( stdout );
  12.   num = 0;
  13.   for( n = 0; n < N && (c = getchar()) != '\n'; ++n )
  14.   {
  15.      digitos[n] = c - '0';
  16.      num *= 10;
  17.      num += digitos[n];
  18.   }
  19.  
  20.   printf( "Digitos: " );
  21.   for( i = 0; i < n; ++i )
  22.      printf( " %d,", digitos[i] );
  23.   printf( "\b ");
  24.   putchar('\n');
  25.   printf( "Numero: %d\n", num );
  26.  
  27.   return 0;
  28. }
  29.  

Saluditos!. ....(http://st.forocoches.com/foro/images/smilies/aaaaa.gif)


Título: Re: Digitos de un numero en C
Publicado por: Dacan en 28 Marzo 2013, 15:49 pm
Muchas gracias a todos  ;D


Título: Re: Digitos de un numero en C
Publicado por: 85 en 30 Marzo 2013, 12:34 pm
si otra forma de hacerlo , al procesar cada unidad por separado XD