Título: Las cifras que tiene un numero Publicado por: mikel-mb 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
Título: Re: Las cifras que tiene un numero Publicado por: MAFUS en 8 Noviembre 2017, 18:37 pm Código: printf("el numero tiene %d cifras \n"); Título: Re: Las cifras que tiene un numero Publicado por: mikel-mb en 8 Noviembre 2017, 19:45 pm Ya lo he puesto pero me sigue pasando lo mismo.
Título: Re: Las cifras que tiene un numero Publicado por: MAFUS 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. Título: Re: Las cifras que tiene un numero Publicado por: josue9243 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. ) Título: Re: Las cifras que tiene un numero Publicado por: josue9243 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
Título: Re: Las cifras que tiene un numero Publicado por: mikel-mb 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...
Título: Re: Las cifras que tiene un numero Publicado por: josue9243 en 10 Noviembre 2017, 16:12 pm Y la verdad que si, es tu VC, ami me anda d10, lo testee todo.
Título: Re: Las cifras que tiene un numero Publicado por: MAFUS en 11 Noviembre 2017, 00:32 am Me reafirmo en mi respuesta: en sucesivos bucles no reseteas cont, por eso crece sin control.
Título: Re: Las cifras que tiene un numero Publicado por: josue9243 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.
Título: Re: Las cifras que tiene un numero Publicado por: mikel-mb en 11 Noviembre 2017, 10:07 am Me reafirmo en mi respuesta: en sucesivos bucles no reseteas cont, por eso crece sin control. Puedes solucionarlo y lo pruebo?Gracias de antemano Título: Re: Las cifras que tiene un numero Publicado por: josue9243 en 11 Noviembre 2017, 16:15 pm Ya te di el código solucionado, compilalo en otro programa, devc++ codeblocks, vc++ 2010 no sé.
Título: Re: Las cifras que tiene un numero Publicado por: MAFUS en 11 Noviembre 2017, 19:07 pm Introduce entre la línea 17 y 18 una nueva con la instrucción: cont = 1;
Título: Re: Las cifras que tiene un numero Publicado por: mikel-mb en 12 Noviembre 2017, 19:45 pm sigue sin funcionar
Título: Re: Las cifras que tiene un numero Publicado por: MAFUS en 12 Noviembre 2017, 20:01 pm Vale, muestra lo que tienes.
Título: Re: Las cifras que tiene un numero Publicado por: mikel-mb en 12 Noviembre 2017, 20:03 pm #define _CRT_SECURE_NO_WARNINGS
#include<stdio.h> int cifras(int num1, int cont); int main() { int num1 = 0; int cont = 1; int numeros = 0; int cont2 = 0; char str[128]; printf("Cuantos numeros va a introducir? \n"); fgets(str, 128, stdin); sscanf(str, "%d", &numeros); while (cont2 < numeros) { cont = 1; printf("introduce un numero: \n"); fgets(str, 128,stdin); sscanf(str,"%d" , &num1); if (num1 > 0) { cont = cifras(num1, cont); printf("el numero tiene %d cifras \n", &cont); cont2++; } else { printf("introduce un numero positivo \n"); fgets(str, 128, stdin); sscanf(str, "%d", &num1); cont2 = 0; } } printf("pulse enter para finalizar..."); getchar(); return 0; } int cifras(int num1,int cont) { while (num1 / 10 > 0||num1/10==0) { num1 = num1 / 10; cont++; } return cont; } Título: Re: Las cifras que tiene un numero Publicado por: MAFUS en 12 Noviembre 2017, 21:23 pm El fallo lo tienes en
Código: printf("el numero tiene %d cifras \n", &cont); Título: Re: Las cifras que tiene un numero Publicado por: mikel-mb en 12 Noviembre 2017, 21:27 pm de esa forma ni me saca el numero.
Título: Re: Las cifras que tiene un numero Publicado por: MAFUS en 12 Noviembre 2017, 22:34 pm Dentro de la función int cifras() tienes el while así:
Código: while (num1 / 10 > 0||num1/10==0) Título: Re: Las cifras que tiene un numero Publicado por: mikel-mb en 13 Noviembre 2017, 13:39 pm Todo solucionado gracias a todos!!!
|