Autor
|
Tema: Las cifras que tiene un numero (Leído 8,171 veces)
|
mikel-mb
Desconectado
Mensajes: 9
|
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: #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<math.h> int cifras(num1, 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"); while (cont2 < numeros) { printf("introduce un numero: \n"); if (num1 > 0) { cont = cifras(num1, cont); printf("el numero tiene %d cifras \n"); cont2++; } else { printf("introduce un numero positivo \n"); cont2 = 0; } } printf("pulse enter para finalizar..."); return 0; } int cifras(num1, cont) { while (num1 / 10 > 0) { num1 = num1 / 10; cont++; } return cont; }
|
|
« Última modificación: 10 Noviembre 2017, 01:23 am por simorg »
|
En línea
|
|
|
|
MAFUS
Desconectado
Mensajes: 1.603
|
printf("el numero tiene %d cifras \n"); Ahí falta una variable para dar valor a %d
|
|
|
En línea
|
|
|
|
mikel-mb
Desconectado
Mensajes: 9
|
Ya lo he puesto pero me sigue pasando lo mismo.
|
|
|
En línea
|
|
|
|
MAFUS
Desconectado
Mensajes: 1.603
|
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
Mensajes: 67
|
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
Mensajes: 67
|
Corregi2 el first lo puse xq el tuyo al poner un segundo numero no se porque le restaba uno, y al primero no xD. int cifras( int num1, int cont); int main( ) { int Roberto = 555; int num1 = 0; int cont = 1; int numeros = 0; int cont2 = 0; int first = 0; char str[128]; printf("Cuantos numeros va a introducir? \n"); while (cont2 < numeros) { printf("introduce un numero: \n"); if (num1 > 0) { cont = cifras(num1, cont); if( first ) cont++; printf("el numero tiene %d cifras \n", cont ); cont = 0; first++; cont2++; } else { printf("introduce un numero positivo \n"); cont2 = 0; } } printf("pulse enter para finalizar..."); return 0; } int cifras( int num1, int cont) { while (num1 / 10 > 0) { num1 = num1 / 10; cont++; } return cont; }
|
|
« Última modificación: 10 Noviembre 2017, 01:24 am por simorg »
|
En línea
|
|
|
|
mikel-mb
Desconectado
Mensajes: 9
|
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
Mensajes: 67
|
Y la verdad que si, es tu VC, ami me anda d10, lo testee todo.
|
|
|
En línea
|
|
|
|
MAFUS
Desconectado
Mensajes: 1.603
|
Me reafirmo en mi respuesta: en sucesivos bucles no reseteas cont, por eso crece sin control.
|
|
|
En línea
|
|
|
|
josue9243
Desconectado
Mensajes: 67
|
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
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Rallada de numero de dos cifras
Programación C/C++
|
Komodo
|
3
|
3,040
|
30 Agosto 2010, 17:44 pm
por do-while
|
|
|
Contratar número de 4 cifras para SMS
Desarrollo Web
|
dimitrix
|
0
|
3,008
|
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
|
30 Octubre 2012, 16:48 pm
por Caster
|
|
|
Constructor (String numero) copia cifras a un Array. AYUDA PORFAVOR
Java
|
chriwasch
|
0
|
1,775
|
7 Enero 2014, 13:32 pm
por chriwasch
|
|
|
Assembler programa que sume, reste, multiplique numero de 2 cifras.
ASM
|
AnubisQuero
|
0
|
7,679
|
12 Febrero 2016, 18:49 pm
por AnubisQuero
|
|