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

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Las cifras que tiene un numero
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Las cifras que tiene un numero  (Leído 8,171 veces)
mikel-mb

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Las cifras que tiene un numero
« en: 8 Noviembre 2017, 15:24 pm »

Buenos días, he escrito un código que tenia que hacer para clase y cuando depuro me salen números muy grandes. Alguien sabe porque? Gracias de ante mano. Aqui dejo el código en C:

Código
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include<stdio.h>
  3. #include<math.h>
  4.  
  5. int cifras(num1, cont);
  6. int main()
  7. {
  8. int num1 = 0;
  9. int cont = 1;
  10. int numeros = 0;
  11. int cont2 = 0;
  12. char str[128];
  13. printf("Cuantos numeros va a introducir? \n");
  14. fgets(str, 128, stdin);
  15. sscanf(str, "%d", &numeros);
  16. while (cont2 < numeros)
  17. {
  18. printf("introduce un numero: \n");
  19. fgets(str, 128,stdin);
  20. sscanf(str,"%d" , &num1);
  21. if (num1 > 0)
  22. {
  23. cont = cifras(num1, cont);
  24. printf("el numero tiene %d cifras \n");
  25. cont2++;
  26. }
  27. else
  28. {
  29. printf("introduce un numero positivo \n");
  30. cont2 = 0;
  31. }
  32. }
  33. printf("pulse enter para finalizar...");
  34. return 0;
  35.  
  36.  
  37. }
  38.  
  39. int cifras(num1, cont)
  40. {
  41.  
  42. while (num1 / 10 > 0)
  43. {
  44. num1 = num1 / 10;
  45. cont++;
  46. }
  47. return cont;
  48. }
  49.  
  50.  


« Última modificación: 10 Noviembre 2017, 01:23 am por simorg » En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Las cifras que tiene un numero
« Respuesta #1 en: 8 Noviembre 2017, 18:37 pm »

Código:
printf("el numero tiene %d cifras \n");
Ahí falta una variable para dar valor a %d


En línea

mikel-mb

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: Las cifras que tiene un numero
« Respuesta #2 en: 8 Noviembre 2017, 19:45 pm »

Ya lo he puesto pero me sigue pasando lo mismo.
En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Las cifras que tiene un numero
« Respuesta #3 en: 9 Noviembre 2017, 18:30 pm »

Te lo digo:
Fíjate que no reinicias la variable cont en cada bucle por tanto parte del valor que tenía en la interación anterior.
En línea

josue9243

Desconectado Desconectado

Mensajes: 67


Ver Perfil
Re: Las cifras que tiene un numero
« Respuesta #4 en: 9 Noviembre 2017, 23:45 pm »

No es mejor poner un cout y std, obtenerlo en un char buffer[500]; y luego usar atoi( )?...

Después haces esto:

if( valor >= 0 && valor <= 9) cifras = 1;
if( valor >= 10 && valor <= 99) cifras = 2;
if( valor >= 100 && valor <= 999) cifras = 3;

y asi sucesivamente :v ( si querés te armo algo mejor :3 y sin poner tantos if xD. )
En línea

josue9243

Desconectado Desconectado

Mensajes: 67


Ver Perfil
Re: Las cifras que tiene un numero
« Respuesta #5 en: 10 Noviembre 2017, 00:13 am »

Corregi2

el first lo puse xq el tuyo al poner un segundo numero no se porque le restaba uno, y al primero no xD.

Código
  1. int cifras( int num1, int cont);
  2.  
  3. int main( )
  4. {
  5. int Roberto = 555;
  6.  
  7. int num1 = 0;
  8.   int cont = 1;
  9.   int numeros = 0;
  10.   int cont2 = 0;
  11.  
  12.   int first = 0;
  13.   char str[128];
  14.   printf("Cuantos numeros va a introducir? \n");
  15.   fgets(str, 128, stdin);
  16.   sscanf(str, "%d", &numeros);
  17.   while (cont2 < numeros)
  18.   {
  19.      printf("introduce un numero: \n");
  20.      fgets(str, 128,stdin);
  21.      sscanf(str,"%d" , &num1);
  22.  printf( str );
  23.      if (num1 > 0)
  24.      {
  25.         cont = cifras(num1, cont);
  26.  
  27. if( first )
  28. cont++;
  29.  
  30.         printf("el numero tiene %d cifras \n", cont);
  31. cont = 0;
  32. first++;
  33.         cont2++;
  34.      }
  35.      else
  36.      {
  37.         printf("introduce un numero positivo \n");
  38.         cont2 = 0;
  39.      }
  40.   }
  41.   printf("pulse enter para finalizar...");
  42.   getchar();
  43.  
  44. system( "PAUSE" );
  45. return 0;
  46. }
  47.  
  48. int cifras( int num1, int cont)
  49. {
  50.  
  51.   while (num1 / 10 > 0)
  52.   {
  53.      num1 = num1 / 10;
  54.      cont++;
  55.   }
  56.   return cont;
  57. }
« Última modificación: 10 Noviembre 2017, 01:24 am por simorg » En línea

mikel-mb

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: Las cifras que tiene un numero
« Respuesta #6 en: 10 Noviembre 2017, 15:44 pm »

He copiado tu codigo en visual studio y tambien me devuelve numeros muy grandes. Tal vez sea problema de mi visual...
En línea

josue9243

Desconectado Desconectado

Mensajes: 67


Ver Perfil
Re: Las cifras que tiene un numero
« Respuesta #7 en: 10 Noviembre 2017, 16:12 pm »

Y la verdad que si, es tu VC, ami me anda d10, lo testee todo.
En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Las cifras que tiene un numero
« Respuesta #8 en: 11 Noviembre 2017, 00:32 am »

Me reafirmo en mi respuesta: en sucesivos bucles no reseteas cont, por eso crece sin control.
En línea

josue9243

Desconectado Desconectado

Mensajes: 67


Ver Perfil
Re: Las cifras que tiene un numero
« Respuesta #9 en: 11 Noviembre 2017, 03:32 am »

y yo te reafirmo diciendo que ya se lo corregi :v, y si vas a volver a reafirmar, no reafirmes directamente corregí el código y lesto.
En línea

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

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Rallada de numero de dos cifras
Programación C/C++
Komodo 3 3,040 Último mensaje 30 Agosto 2010, 17:44 pm
por do-while
Contratar número de 4 cifras para SMS
Desarrollo Web
dimitrix 0 3,008 Último mensaje 7 Enero 2011, 22:35 pm
por dimitrix
Como almacenar un numero de 10 cifras « 1 2 »
Programación C/C++
Caster 10 4,815 Último mensaje 30 Octubre 2012, 16:48 pm
por Caster
Constructor (String numero) copia cifras a un Array. AYUDA PORFAVOR
Java
chriwasch 0 1,775 Último mensaje 7 Enero 2014, 13:32 pm
por chriwasch
Assembler programa que sume, reste, multiplique numero de 2 cifras.
ASM
AnubisQuero 0 7,679 Último mensaje 12 Febrero 2016, 18:49 pm
por AnubisQuero
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines