elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Tengo una duda de como determinar los digitos de un número
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Tengo una duda de como determinar los digitos de un número  (Leído 34,712 veces)
Felipe_Henriquez

Desconectado Desconectado

Mensajes: 25


Ver Perfil
Tengo una duda de como determinar los digitos de un número
« en: 17 Agosto 2011, 00:40 am »

Buenas a los que leen este post, y como dice el asunto del post. Tengo una duda con respecto a como determinar una cantidad x de dígitos de cualquier numero, no sé como hacer un programa que lea los dígitos de cualquier número.
 
 Ejemplo supongamos que escribo en el programa el numero 11231415 y que me diga cuantos dígitos tiene, pasa que estudiando el libro de programación (C/C++ Java Deitel y Deitel) , salen muchos ejercicios de esa forma. Sin ir mas allá tengo un problema de transformar números binarios a decimales, lo podría hacer perfectamente, si el enunciado del problema digiera un número de 6 dígitos o un número de dígitos estándar, pero pasa que el enunciado del problema es para un número de cualquier longitud, no sé si me explico bien.

 Voy en el capítulo 3 y hasta el momento tengo las siguientes herramientas, o lo visto en el libro hasta ahora, if else, y bucle while, sólo puedo usar esas dos herramientas. Sí me pudieran explicar como contar los dígitos de un número cualquiera introducido, estaría muy agradecido.

 PD: He buscado en google pero no aparece como determinar los dígitos de un número cualquiera solo con estas dos herramientas  y es lo qué se me pide en el libro y no sé como hacerlo.

 Un cordial Saludo Gracias.
 


En línea

тαптяα


Desconectado Desconectado

Mensajes: 1.151


Sic utere tuo ut alienum non laeda


Ver Perfil WWW
Re: Tengo una duda de como determinar los digitos de un número
« Respuesta #1 en: 17 Agosto 2011, 00:51 am »

http://www.cplusplus.com/reference/clibrary/cstring/strlen/


En línea

Alien-Z

Desconectado Desconectado

Mensajes: 177


C++ Programmer


Ver Perfil
Re: Tengo una duda de como determinar los digitos de un número
« Respuesta #2 en: 17 Agosto 2011, 00:59 am »

Me interesa bastante el problema que has planteado para practicar, intentaré resolverlo y si lo consigo lo posteo; asi que si no lo he entendido mal quieres leer la cantidad de números que introduce el usuario usando solo "if else" y "while".

Saludos.
« Última modificación: 17 Agosto 2011, 01:07 am por Alien-Z » En línea

Felipe_Henriquez

Desconectado Desconectado

Mensajes: 25


Ver Perfil
Re: Tengo una duda de como determinar los digitos de un número
« Respuesta #3 en: 17 Agosto 2011, 01:10 am »

ハセヲ Muchas gracias por darme el link satisface en cierta manera el problema, pero aun no llegaba a funciones oficialmente en el libro si que ni idea tenia de esta función.

 Allen-Z quería saber como saber los dígitos longitud de caracteres de un número cualquiera solo con if else, while, por ejemplo si introduzco 40.000 me diga 5 dígitos, o introducir 12.000.000 y me diga 8 dígitos y nada de arreglos ni punteros ni funciones extras solo con <stdio.h> . Sólo con esas cosas, pero  if else, while, <stdio.h> por lo que me parece es muy difícil.
 Gracias Allen-Z por darte la molestia de contestar e intentar realizar el ejercicio.
Un Abrazo! Saludos!
En línea

тαптяα


Desconectado Desconectado

Mensajes: 1.151


Sic utere tuo ut alienum non laeda


Ver Perfil WWW
Re: Tengo una duda de como determinar los digitos de un número
« Respuesta #4 en: 17 Agosto 2011, 01:18 am »

ハセヲ Muchas gracias por darme el link satisface en cierta manera el problema, pero aun no llegaba a funciones oficialmente en el libro si que ni idea tenia de esta función.

 Allen-Z quería saber como saber los dígitos longitud de caracteres de un número cualquiera solo con if else, while, por ejemplo si introduzco 40.000 me diga 5 dígitos, o introducir 12.000.000 y me diga 8 dígitos y nada de arreglos ni punteros ni funciones extras solo con <stdio.h> . Sólo con esas cosas, pero  if else, while, <stdio.h> por lo que me parece es muy difícil.
 Gracias Allen-Z por darte la molestia de contestar e intentar realizar el ejercicio.
Un Abrazo! Saludos!
De nada.
« Última modificación: 17 Agosto 2011, 01:58 am por ハセヲ, » En línea

Alien-Z

Desconectado Desconectado

Mensajes: 177


C++ Programmer


Ver Perfil
Re: Tengo una duda de como determinar los digitos de un número
« Respuesta #5 en: 17 Agosto 2011, 01:23 am »

Citar
No creo que con solo ciclos sin nada de funciones, puedas determinar la longitud de la cadena.

Por lo que ha comentado es un problema que le plantea un libro, asi que lo más seguro es que tenga solución.

Citar
Allen-Z quería saber como saber los dígitos longitud de caracteres de un número cualquiera solo con if else, while, por ejemplo si introduzco 40.000 me diga 5 dígitos, o introducir 12.000.000 y me diga 8 dígitos y nada de arreglos ni punteros ni funciones extras solo con <stdio.h> . Sólo con esas cosas, pero  if else, while, <stdio.h> por lo que me parece es muy difícil.
 Gracias Allen-Z por darte la molestia de contestar e intentar realizar el ejercicio.
Un Abrazo! Saludos!

No es molestia para nada, yo también entré en el mundo de la programación hace poco y me interesa bastante intentar resolverlo para poner en práctica lo que he aprendido (aunque yo voy terminando con las clases y los objetos). Lo que hace complicado el problema es que no hay una cifra máxima, igual puede tener un dígito que 20, y tan solo puedes usar "if else" y "while", asi que si consigo darle solución lo comento.

Saludos!
« Última modificación: 17 Agosto 2011, 01:29 am por Alien-Z » En línea

Felipe_Henriquez

Desconectado Desconectado

Mensajes: 25


Ver Perfil
Re: Tengo una duda de como determinar los digitos de un número
« Respuesta #6 en: 17 Agosto 2011, 01:38 am »

Gracias por responder Allen :D si fuera un numero determinado de dígitos no tengo problemas en hacerlo pero con no se sabe de cuantos dígitos introduce el usuario ahí esta el pero Gracias por el esfuerzo

Saludo!
En línea

criskapunk

Desconectado Desconectado

Mensajes: 277



Ver Perfil
Re: Tengo una duda de como determinar los digitos de un número
« Respuesta #7 en: 17 Agosto 2011, 01:43 am »

Si lo que querés es convertir un número de decimal a binario no hace falta saber la cantidad de dígitos, porque el mecanismo es siempre el mismo :P

Por ejemplo, tomamos el número 133.
Hay que ir haciendo divisiones enteras sucesivas por 2 y guardar el resto. Entonces:

133/2 = 66 Resto 1
66/2   = 33 Resto 0
33/2   = 16 Resto 1
16/2   = 8 Resto 0
8/2     = 4 Resto 0
4/2     = 2 Resto 0
2/2     = 1 Resto 0
1/2     = 0 Resto 1

Fijate el último caso. Tenés que ir haciendo la división hasta que la división entre un número y 2 sea cero. Ese va a ser el último resto que tenés que guardar (Esa sería la condición de corte de un bucle while, por ejemplo).

Ahora sólo queda leer el número de abajo hacia arriba, quedando 10000101 = 133.

Te toca traducirlo a C.

Igualmente estoy tratando de resolver lo de obtener la cantidad de dígitos de un número sin usar funciones. Esta bueno el problema ;D

Un saludo.

Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.

 :¬¬
« Última modificación: 17 Agosto 2011, 01:46 am por R0LFback » En línea

bigfu

Desconectado Desconectado

Mensajes: 49



Ver Perfil WWW
Re: Tengo una duda de como determinar los digitos de un número
« Respuesta #8 en: 17 Agosto 2011, 01:46 am »

Si lo que quieres es saber el número de dígitos que tiene un número cualquiera, lo único que tienes que hacer es ir dividiendo por 10 y contar las divisiones hasta que el cociente de 0.

Ejemplo: Num = 121, contador = 0

121/10 = 12 --> contador = 1
12/10 = 1 --> contador = 2
1/10 = 0 --> contador = 3
y ahi finaliza el bucle
En línea

A reader lives a thousand lives before he dies. The man who never reads lives only one
Valkyr


Desconectado Desconectado

Mensajes: 646


Divide y vencerás


Ver Perfil
Re: Tengo una duda de como determinar los digitos de un número
« Respuesta #9 en: 17 Agosto 2011, 02:00 am »

También podrías hacer algo así:

Código
  1. #include<stdio.h>
  2. #include<ctype.h>
  3.  
  4. int main(void){
  5. int a, digitos;
  6. digitos = 0;
  7. a = getchar();
  8. while(isdigit((char)a)){
  9. digitos++;
  10. a = getchar();
  11. }
  12. printf("%d", digitos);
  13. return 0;
  14. }

aunque como dices que no puedes hacer uso de funciones pues podrías hacer también algo así:

Código
  1. #include<stdio.h>
  2.  
  3. int main(void){
  4. int a, digitos;
  5. digitos = 0;
  6. a = getchar();
  7. while((char)a != '\n'){
  8. digitos++;
  9. a = getchar();
  10. }
  11. printf("%d digitos", digitos);
  12. }

pero tendrías que comprobar dentro del bucle While que lo que has leido es un número, si no se colaría xD.

Saludos.
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines