Título: [C++] Redondear un entero positivo a la centena más proxima Publicado por: djpacheco3 en 3 Septiembre 2019, 21:36 pm se desea redondear un entero positivo N a la centena mas proxima y visualizar la salida.
Para ello la entrada de datos debe de sr los cuatro digitos A,B,C,D del entero N. Por ejemplo, si A es 2, B es 3, C es 6 y D es2, entonces N será 2362 y el resultado redondeado será 2400. SiN es 2342, el resultado seeá 2300 , y si N=2962, entonces el numero será 3000 Mod: Obligatorio el uso de títulos descriptivos. Segundo aviso. https://foro.elhacker.net/reglas Título: Re: ayuda!!!! Publicado por: MAFUS en 3 Septiembre 2019, 22:07 pm Te voy a responder yo porque creo que no lo va a hacer nadie más.
No se hacen tareas. Si quieres ayuda deberás haber creado la solución, mostrarla e indicar dónde te has quedado bloqueado. Pero desde cero nadie se va a poner a hacértelo. Título: Re: ayuda!!!! Publicado por: djpacheco3 en 3 Septiembre 2019, 23:20 pm Me puedes ayudar como comienza por favor y la formula como redondear te lo ruego porfavor es un deber para mañana que esa clase falte por razones de enfermedad
Título: Re: ayuda!!!! Publicado por: engel lex en 4 Septiembre 2019, 02:47 am para redondear en c++ usualmente lo mejor es cambiar el numero a float, dividirlo entre la base del redondeo (en tu caso 100) pasar el resultado a entero, restar el float y si el resultado es mayr que 0.5 sumas 1 al entero... luego le multiplicas por la base
Código: int base = 100; no uses ayuda como titulo de tus temas no son para nada descriptivos Título: Re: Ayuda Publicado por: 98Fran en 4 Septiembre 2019, 12:07 pm Código Si usas Código
quita los [std::] y ya estaría Título: Re: Ayuda Publicado por: K-YreX en 4 Septiembre 2019, 20:00 pm Código Si usas Código
quita los [std::] y ya estaría La solución que sí funciona es la que ha dado @engel lex. Título: Re: [C++] Redondear un entero positivo a la centena más proxima Publicado por: MAFUS en 4 Septiembre 2019, 21:17 pm Ei, bonito reto. Bueno, ahora que ya ha pasado la fecha límite:
Siempre que no se tenga en cuenta que xy45 pueda promocionar a 50 y este a x(y+1)00 os dejo este código de una sola línea, dónde n es nuestro número: n = (n/100 + (n%100>=50)) * 100; Título: Re: [C++] Redondear un entero positivo a la centena más proxima Publicado por: engel lex en 4 Septiembre 2019, 21:25 pm ;-)
Código: n = (n/100 + (n%100>=50)) * 100; buen uso de la promoción de operandos para este caso solo para hacerlo modular Código: base = 100 donde n y base deben ser enteros y base mayor a 10 (porque si no solo truncará) Título: Re: [C++] Redondear un entero positivo a la centena más proxima Publicado por: CalgaryCorpus en 5 Septiembre 2019, 12:58 pm Parece mas simple no multiplicar, asi:
redondeo = (n+50) - (n+50)%100 Título: Re: [C++] Redondear un entero positivo a la centena más proxima Publicado por: MAFUS en 6 Septiembre 2019, 09:28 am Qué guapo. Me gusta.
Título: Re: [C++] Redondear un entero positivo a la centena más proxima Publicado por: Loretz en 7 Septiembre 2019, 00:11 am Citar se desea redondear un entero positivo N a la centena mas proxima y visualizar la salida. Para ello la entrada de datos debe de sr los cuatro digitos A,B,C,D del entero N. Por ejemplo, si A es 2, B es 3, C es 6 y D es2, entonces N será 2362 y el resultado redondeado será 2400. SiN es 2342, el resultado seeá 2300 , y si N=2962, entonces el numero será 3000 En C++ moderno es inmediato, por ejemplo: Código
Ventajas? Ver la documentación, en especial "Error handling" https://en.cppreference.com/w/cpp/numeric/math/round (https://en.cppreference.com/w/cpp/numeric/math/round) |