Test Foro de elhacker.net SMF 2.1

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
Cita de: Dacan en 28 Marzo 2013, 05:50 AM
............... 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 (cpp) [Seleccionar]
#include <stdio.h>
#define N 10

int main( void )
{
   int c, i, n;
   int digitos[N];
   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( " %d,", digitos[i] );
   printf( "\b ");
   putchar('\n');
   printf( "Numero: %d\n", num );

   return 0;
}


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