Ayuda con if anidados?
Hola a todos
Estoy haciendo un ejercicio de if anidados, el problema dice: dado 3 variables locales definidas como ints, escribe ifs para imprimirlos de forma ascendente. Incluso si cambiamos los valores de las 3 variables, deben de ser imprimidas en orden ascendente. Ejem: int a=12, int b=34, int c=6, debe imprimir: 6 12 34.
Esto es lo que llevo, el problema es que me esta imprimiendo ordenados como 3 veces, no se que estoy haciendo mal, ojala me puedan sacar de la duda?
gracias de antemano por contestar
- Inicie sesión o regístrese para enviar comentarios
Checa tu lógica
Primero que nada tu lógica, si bien está acercándose a la solución, está incorrecta. ¿Has hecho una prueba de escritorio? El problema me suena a tarea, así que no podemos hacerte la misma, tengo de hecho ya corregido tu código, pero es muchísimo mejor si uno mismo llega a la respuesta por sí mismo, si bien no postearé el código correcto estaré más que encantado de ir resolviendo tus dudas poco a poco, así que empecemos por el principio:
Para que me entiendas mejor haz una prueba de escritorio. Sé que es muy tedioso, confieso que cuando yo empezaba a programar no era de mi particular agrado, pero con la práctica lo podrás hacer en la mente (no recomendable aún así). Así que ve por papel y ve ejecutando el código con el lápiz para ver qué está haciendo la computadora. Ya que lo hayas hecho regresas aquí a leer el sermón.
El primer error que salta a la vista: El tener tus if fuera de sus respectivas llaves cuando se ejecuta la línea, por ejemplo, de:
Ejecuta esa instrucción e inmediatamente se va a la línea de:
Cuando, supongo, tu lógica dice que una vez ejecutado la primera validación SI Y SOLO SI ella se cumple, entonces ejecutar el bloque que puse arriba, cuidado con la anidación de if.
Sugiero que lo pruebes, hagas tu prueba de escritorio y verás que también tienes unos cuantos errores más en tu forma de imprimir los valores cuando se cumple cada condición; no te digo cuáles son porque hasta que hagas una (o más bien, varias) pruebas de escritorio con valores diferentes, la solución vendrá a ti. No es el mejor algoritmo que podrías implementar para este ejercicio, pero si es como práctica, supongo que estará bien. Cualquier otra duda trataré de volver al thread y echarte la mano, pero por regla general, si es tarea, no podemos resolverla, pero sí podemos irte guiando para que solito tú resuelvas tu problema.
Saludos!
Gracias por tu respuesta,
Gracias por tu respuesta, de todos modos me gustaria que revisarás mi codigo si puedes porfavor. Segun yo ya esta bien, haz las correciones sugerencias que sean necesarias por favor.
Muchas gracias por responder
espero te sirva
espero te sirva esto:
@beckveg Exacto!
Exactamente beckveg, supongo que hiciste la prueba de escritorio, porque todo lo solucionaste de la manera apropiada (espero que no lo hayas copiado de ningún lado XD), como tip, en la línea de formato donde el orden quedaría como b-c-a, checa que agregues un espacio como lo hiciste en los demás casos.
Justo ahí, supongo que sabrás como agregarle el espacio faltante para que salga bien. Por el resto está correcto, hasta donde hice las pruebas y vi el código lo depuraste correctamente, aunque nunca está de más hacer más pruebas y asegurarse que está correctamente implementado, luego hay bugs que se escapan a la vista o (más importante aún) a unas cuantas pruebas de escritorio. Ojalá te haya podido ayudar.
Muchas gracias por
Muchas gracias por responder, me servira para futuros ejercicios.
saludos
Muchas gracias por todo, la
Muchas gracias por todo, la verdad es que tengo que mejorar bastante por eso estoy haciendo ejercicios, y preguntando en foros he aprendido mucho.
saludos y gracias