• Jueves 14 de Noviembre de 2024, 23:14

Autor Tema:  Alguien Me Puede Ayudar? Como Separar Digitos  (Leído 5171 veces)

ifmaster

  • Miembro activo
  • **
  • Mensajes: 51
    • Ver Perfil
Alguien Me Puede Ayudar? Como Separar Digitos
« en: Sábado 5 de Junio de 2004, 17:32 »
0
Pues no se como hacer esto, por ejemplo que el programa tome el numero '55555' y lo imprima luego asi: 5  5  5  5  5
En el libro que estoy usando para aprender C pone que use los operadores de division y de modulo para hacerlo, pero esk no entiendo como esto me puede ayudar a hacerlo, se k con el operador de modulo puedo saber si un numero es par o impar si el valor es 0(par).
Bueno el ejercicio que se me plantea es que mi programa detecte si el numero de 5 digitos introducido es palindromo o no (es decir numeros que se len igual hacia adelante como hacia atras, ej: 12321, 55555, 45554, 11611, ...), pues eso a ver si alguien me puede ayudar :P thx

Blag

  • Moderador
  • ******
  • Mensajes: 697
    • Ver Perfil
    • http://atejada.blogspot.com
Re: Alguien Me Puede Ayudar? Como Separar Digitos
« Respuesta #1 en: Sábado 5 de Junio de 2004, 17:54 »
0
Bueno, una forma sencilla sería la siguiente:

Como solo tienes 5 dígitos, entonces declaras 5 variables para cada dígito.
Si el numero es por ejemplo: 55555......
Para la primera variable divides este número entre 10000, utilizando / para tomar el valor entero.
Luego, divides 55555 entre 10000 con el simbolo % para obtener el residuo.
Con ese residuo, 5555 lo divides entre 1000 con / y luego el residuo con % y así sucesivamente hasta que tengas tus 5 variables llenas.

Luego, simplemente comparas la primer con la quinta y la segunda con la cuarta.

Saludos,

Blag  :devil:

ifmaster

  • Miembro activo
  • **
  • Mensajes: 51
    • Ver Perfil
Re: Alguien Me Puede Ayudar? Como Separar Digitos
« Respuesta #2 en: Sábado 5 de Junio de 2004, 17:58 »
0
Muchas gracias, no e entendido muy bien lo que me has dicho pero voy a leerlo tranquilamente y a ver si lo consigo, de nuevo gracias :)

ifmaster

  • Miembro activo
  • **
  • Mensajes: 51
    • Ver Perfil
Re: Alguien Me Puede Ayudar? Como Separar Digitos
« Respuesta #3 en: Sábado 5 de Junio de 2004, 18:06 »
0
jaja otra pequeña duda  :P esk no hace mucho k estoy programando y no se mucho todabia :P a ver para inscribir un valor de 5 digitos entero que uso:
unsigned int o long? o otro tipo de declaracion de variable? y luego k tengo que poner en scanf y printf para capturar y mostrar el valor de esa variable :P(no se si me explique muy bien xD) es decir al capturar y mostrar una variable del tipo char pues se hace %c, no? pues dime x favor k tipo de declaracion tengo k usar y k % tengo k poner :P thx again

Blag

  • Moderador
  • ******
  • Mensajes: 697
    • Ver Perfil
    • http://atejada.blogspot.com
Re: Alguien Me Puede Ayudar? Como Separar Digitos
« Respuesta #4 en: Sábado 5 de Junio de 2004, 18:09 »
0
Citar
Muchas gracias, no e entendido muy bien lo que me has dicho pero voy a leerlo tranquilamente y a ver si lo consigo, de nuevo gracias

 :rolleyes:

numero = 12345

primero = numero / 10000;  --> 1
aux = numero % 10000 --> 2345

segundo = aux / 1000 --> 2
aux = segundo % 1000 --> 345

tercero = aux / 100 --> 3
aux = segundo % 100 --> 45

etc......Donde puede hacer que quinto = aux cuando no se pueda dividir más, o simplemente utilizas quinto desde el principio....dependa de como se te haga más sencillo  :smartass:

ifmaster

  • Miembro activo
  • **
  • Mensajes: 51
    • Ver Perfil
Re: Alguien Me Puede Ayudar? Como Separar Digitos
« Respuesta #5 en: Sábado 5 de Junio de 2004, 18:19 »
0
vale vale ahora lo e pillao thx xk taba probando rarezas y no e conseguia nada :/

Blag

  • Moderador
  • ******
  • Mensajes: 697
    • Ver Perfil
    • http://atejada.blogspot.com
Re: Alguien Me Puede Ayudar? Como Separar Digitos
« Respuesta #6 en: Sábado 5 de Junio de 2004, 18:31 »
0
Citar
a ver para inscribir un valor de 5 digitos entero que uso:
unsigned int o long?

Lo mejor sería que utilices Long.....

Citar
scanf y printf para capturar y mostrar el valor de esa variable

En realidad depende de si utilizas C o C++ (Puesto que en C++, se puedan utilizar dos formas).

En C:
-------
printf (Para escribir)
scanf(%*,variable) (Para leer)   *No me acuerdo que va aquí  :alien:

Mejor utiliza esto:

cout<< (Para escribir)
cin>> (Para leer).

Y listo.......

Blag  :devil:

ifmaster

  • Miembro activo
  • **
  • Mensajes: 51
    • Ver Perfil
Re: Alguien Me Puede Ayudar? Como Separar Digitos
« Respuesta #7 en: Sábado 5 de Junio de 2004, 18:34 »
0
Pues lo e dicho como me as dicho y no me salia muy bien aki te pongo el codigo que me a quedado al final, pero por cierto si le pongo 55555 como numero no funciona bien :P
#include <stdio.h>
#include <conio.h>

int main()
{
   clrscr();

   int digit1, digit2, digit3, digit4, digit5, auxiliar, fdn;

   printf("Introduce un numero de 5 digitos: ");
   scanf("%d", &fdn);

   printf("fdn(Five digit number) = %d\n", fdn);

   digit1 = fdn / 10000;
   auxiliar = fdn / 10000;

   digit2 = auxiliar / 1000;
   auxiliar = fdn / 1000;

   digit3 = auxiliar / 100;
   auxiliar = fdn / 100;

   digit4 = auxiliar / 10;
   auxiliar = fdn / 10;

   digit 5 = auxiliar;

   printf("%d %d %d %d %d", digit1, digit2, digit3, digit4, digit5);

   return 0;
}
 
Pero lo dicho con este codigo si le pongo 55555 como numero el programa funciona mal :P como tengo k declarar las variables para que funcione bien?

ifmaster

  • Miembro activo
  • **
  • Mensajes: 51
    • Ver Perfil
Re: Alguien Me Puede Ayudar? Como Separar Digitos
« Respuesta #8 en: Sábado 5 de Junio de 2004, 18:43 »
0
Bueno pues ya esta, e rebuscando en el libro buscando lo del long y no sabia que se tenia que poner long int, pensaba que solo era long :P, e substituido todas las variables por long int (ahunque seguramente hay algunas como los 3 o 4 ultimos digits que se pueden declarar solo como int para ahorrar mempria pero weno de momento :P:P:P:P) y el % es %ld :P jeje de comento no e tocado las intrucciones de c++ ya que prefiero tener una base solida de c para empezar a tocar cosas de c++ de todas formas muchas gracias por tu ayuda :) :comp: