Título: invertir el número entero Publicado por: lohayne en 20 Abril 2018, 02:25 am Hola
Hola buenas tardes, Estoy haciendo un ejercicio para invertir un número (un número de la elección del usuario) ejemplo: 1234 se convierte en 4321 pero a pesar de que el programa se ejecuta, cuando pongo 3 dígitos o más, los números aparecen invertidos, pero falta 1 dígito ¿Alguien me puede ayudar? Olá boa tarde, Eu estou fazendo um exercício para inverter um numero(um numero da escolha do usuário) exemplo:1234 vira 4321 mas apesar do programa rodar,quando eu coloco 3 dígitos ou mais ,os números aparecem invertidos ,mas o ultimo digito não aparece alguém poderia me ajudar? Código
· Los códigos deben ir en etiquetas GeSHi (corregido) >aquí las reglas del foro (http://foro.elhacker.net/reglas.htm) -Engel Lex Título: Re: invertir el número entero Publicado por: engel lex en 20 Abril 2018, 02:42 am tienes un problema logico en tu operación
Código
primera linea: para i empezando en 0, mientras que i sea menor que n en este caso si el numero por ejemplo es 118 Código: ciclo1: el codigo deben cambiar la linea del for por Código
esto hará que se repita mientras que n no sea 0(que será interpretado como false y terminará el codigo)... por otro lado aunque no te afecta realmente, tienes una incoherencia con ese puntero a v no tiene mucho sentido Título: Re: invertir el número entero Publicado por: Serapis en 20 Abril 2018, 02:54 am Tienes un error semántico...
Usas el bucle incorrecto al caso. Para usar un bucle "For", se debe saber cuantas veces debe ejecutarse. Cuando se desconoce cuantas veces deba ejecutarse un bucle, es mejor usar un bucle incondiional tipo "while..." Tu usas i como contador, pero 'i', nada tiene que ver con el valor que introduce el usuario (por ejemplo 34567), con cada ciclo, n pierde un dígito, e 'i' suma 1, luego cuando 'n' solo qued euna cifra... el resultado dependerá de si 'i' se ha ejecutado menos veces que el valor de 'n' que resta... La solución es modificar el bucle así: Código: Hacer mientras (n>0) Si fuera el caso que hubiera ceros a la izquierda, como número los ceros a la izquierda, no valen nada (00053 = 53, luego la inversión del número 0053 = 35 es correcta)... ...pero si lo tomas como si fuera texto, si cuentan ("0053" invertido sería "3500", pero en ese caso 'n' no podría ser tratado cono un número y el módulo y la división darían error, es decir la función debería ser otra distinta, operando con caracteres y no con cifras. Título: Re: invertir el número entero Publicado por: Kenji-chan en 20 Abril 2018, 03:48 am la resolución de este problema es sencilla
primero tienes que averiguar la cantidad de dígitos que tiene el numero ingresado Código: num = numero ingresado por el usuario; ahora hay que voltear el numero para ello tenemos que descomponer el numero Código: //para el ejemplo usaremos el numero 1234 pero para ello tenemos que cambiar el valor de nuestro numero Código: num = num%valor_proposicional Título: Re: invertir el número entero Publicado por: lohayne en 20 Abril 2018, 04:25 am funcionó usando el bucle,
pero necesito hacer usando el vector como pide el ejercicio, y no estoy consiguiendo Título: Re: invertir el número entero Publicado por: MAFUS en 20 Abril 2018, 07:23 am Primero debes conseguir cuántos cifras componen el número. Si te dan 1000 este tiene 4 cifras, no 1000. Esto se con log10 y sumando 1: log10(1000)+1
Después creas un array de enteros de tantas cifras. Después con el bucle que de NEBIRE y un índice vas dejando el número calculado al array. Título: Re: invertir el número entero Publicado por: lohayne en 21 Abril 2018, 02:14 am Hola amigos, Rehice mi código y creé una función para contar dígitos. Mi programa funcionó hasta 8 dígitos, después de eso, el número fue invertido pero falta el último dígito pero no sé si es semántica error o debido a variable int.
Código: #include <stdio.h> Título: Re: invertir el número entero Publicado por: Yuki en 21 Abril 2018, 02:33 am No te entiendo la verdad, pero voy a dejar este código por acá...
Código
Título: Re: invertir el número entero Publicado por: engel lex en 21 Abril 2018, 02:43 am no entiendo la obsesión de hacerlo con for XD pero puedes hacer
Código
así el ciclo se rompe si n es 0 y puedes avanzar i al mismo tiempo en contdigitos el if está de más, en general es redundante y puedes trabajar sin el ya me di cuenta del error XD ejecutas contdigitos(n); antes de leer n... cuentas los digitos antes de leerlos XD Título: Re: invertir el número entero Publicado por: Kenji-chan en 21 Abril 2018, 04:17 am este es el método que yo he utilizado
Código
he creado la función int eleva10(int expo)porque la pow no me funciona bien XD Título: Re: invertir el número entero Publicado por: lohayne en 22 Abril 2018, 16:48 pm Muchas gracias amigos, mi programa se está ejecutando perfectamente
|