Autor
|
Tema: Tengo una duda con un programa que hice en C (Leído 3,407 veces)
|
maic1020
Desconectado
Mensajes: 2
|
Este es el enunciado del ejercicio: Escribe un programa que dado un número entero positivo, indique si contiene una secuencia apocalíptica. Un número contiene una secuencia apocalíptica si tiene al menos tres veces seguidas la cifra 6. Por ejemplo: 666, 46 663, 23666997. y este es el programa que hice: #include <stdio.h> int main(){ int n,cont=0,r; while(n>0 && cont<3){ if(n%10==6){ // si el numero divido 10 da como residuo 6 n=n/10; // calculo el cociente if(n%10==6){ // el numero adopta el valor del cociente n=n/10; // realizo lo mismo que el anterio (cociente) r=n%10; // calculo el reciduo if(n%10==6 || r==6 ){ se han de cumplir uno de las dos condiciones cont+=3;// constante que almacena un 3, es decir, almacena tres veces seguidas el numero 6 } } } if(n%10!=6){ n=n/10; } } if(cont>=3) printf("El numero es apocaliptico\n"); else printf("El numero no es apocaliptico\n"); return 0;}
todo iba bien, me reconocia lo que pedia, lo malo es cuando ingreso una cantidad elevada de numeros, por ejemplo "6669850943 o 666666666", me gustaria que me dijierais alguna solucion, os lo agradeceria. Mod: Los códigos deben ir en etiquetas GeSHi, no se debe escribir en mayúsculas
|
|
« Última modificación: 11 Noviembre 2016, 07:05 am por engel lex »
|
En línea
|
|
|
|
Poyoncio
|
Declara con float, en vez de con int
|
|
|
En línea
|
Curso de ensamblador desde cero
|
|
|
andie13
Desconectado
Mensajes: 29
|
Si no me equivoco las variables int solo captan hasta un máximo de 2.147.483.647 numeros en 32 bits. He probado y cuando pones un numero infimamente menos que ese máximo, el programa funciona. Escribe un numero: 2146662132 El numero es apocaliptico
Es a partir de ahí cuando empieza a fallar. Escribe un numero: 2147666548 El numero no es apocaliptico
Prueba cambiando la variable int por otra que soporte mayor cantidad de caracteres, como float.
|
|
|
En línea
|
|
|
|
MAFUS
Desconectado
Mensajes: 1.603
|
Usa unsigned, long int, long unsigned, long long int, long ling unsigned.
|
|
|
En línea
|
|
|
|
engel lex
|
Si no me equivoco las variables int solo captan hasta un máximo de 2.147.483.647 numeros en 32 bits. He probado y cuando pones un numero infimamente menos que ese máximo, el programa funciona. Escribe un numero: 2146662132 El numero es apocaliptico
Es a partir de ahí cuando empieza a fallar. Escribe un numero: 2147666548 El numero no es apocaliptico
Prueba cambiando la variable int por otra que soporte mayor cantidad de caracteres, como float. float es 32bits... puedes incluso guardar menos(por el calculo de la parte decimal)... lo unico que hace es mover el espacio decimal para "ajustar la precisión" recomiendo estudiar los detalles https://en.wikipedia.org/wiki/Single-precision_floating-point_formaty dejo la aclaratoria As an example, the 32-bit integer 2,147,483,647 converts to 2,147,483,650 in IEEE 754 form. en tal caso si te fijas el 2.147..... es 31 bits... el 32 es el signo, por lo que si usas (como indica MAFUS) unsigned int, llegarás hasta 4.294... si usas unsigned long int, tendrás un espacio de 64 bits, que es un numero mucho más grande (18.446.744.073.709.551.616), igual limitado para "rellenar", de ahí en adelante no puedes acceder a numero de mayor precisión sin librerías especiales
|
|
« Última modificación: 11 Noviembre 2016, 07:22 am por engel lex »
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Duda con un programa que hice - Do while y creacion de ficheros/archivos
Programación C/C++
|
Fabi0lo
|
1
|
3,084
|
1 Mayo 2012, 22:52 pm
por exel
|
|
|
me gustaria q m revisaran este programa lo hice en dev c++
Programación C/C++
|
eduardo17445
|
5
|
3,854
|
21 Marzo 2013, 02:59 am
por zonahurbana
|
|
|
[Ayuda] Hice un programa con estructuras en C
Programación C/C++
|
Proxmond
|
0
|
1,539
|
1 Junio 2014, 23:04 pm
por Proxmond
|
|
|
Encontrar errores de este programa que hice
.NET (C#, VB.NET, ASP)
|
Meta
|
3
|
3,884
|
3 Febrero 2016, 15:22 pm
por Eleкtro
|
|
|
Tengo una botnet increíblemente grande, lo hice sin querer y no quiero hacer ddo
Dudas Generales
|
Nomames7891
|
5
|
2,818
|
10 Febrero 2019, 21:23 pm
por Nomames7891
|
|