Digitos de un numero en C

Iniciado por Dacan, 28 Marzo 2013, 05:50 AM

0 Miembros y 1 Visitante están viendo este tema.

Dacan

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,

Maik33

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

antraXactive

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

85

#3
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.
Me cerraron el Windows Live Spaces, entonces me creé un WordPress XD
http://etkboyscout.wordpress.com/

leosansan

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!. ....

Dacan


85

si otra forma de hacerlo , al procesar cada unidad por separado XD
Me cerraron el Windows Live Spaces, entonces me creé un WordPress XD
http://etkboyscout.wordpress.com/