Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Mudereded401 en 20 Octubre 2020, 22:56 pm



Título: Duda con Calculo errado
Publicado por: Mudereded401 en 20 Octubre 2020, 22:56 pm
Hola! Quizás sea una Duda estúpida, Pero estoy haciendo un programa para calcular Operaciones combinadas, Que son las que llevan {} () []. PERO Ocurrió algo al probarla, y es que me perdí en el orden para realizarla xd. Quiero decir, que intenté este problema:

  -18 * (+6) + (-4) * 9

 PERO el programa me dió esto: -1008. Y quedé en duda porque no debería haber dado -144???????

 no debería haber resuelto primero el "-18 * (+6)", luego el "(-4) * 9" y sumar los 2 resultados?




Título: Re: Duda con Calculo errado
Publicado por: K-YreX en 20 Octubre 2020, 23:12 pm
Efectivamente, siguiendo el orden de preferencia de los operadores, el resultado debería ser -144 y no -1008.

Parece que tu programa hace las operaciones según las ve pues si haces: (-18 * 6 + (-4)) * 9 = -1008.

Obviamente, sin ver el código es imposible ayudarte más.


Título: Re: Duda con Calculo errado
Publicado por: Mudereded401 en 20 Octubre 2020, 23:15 pm
Efectivamente, siguiendo el orden de preferencia de los operadores, el resultado debería ser -144 y no -1008.

Parece que tu programa hace las operaciones según las ve pues si haces: (-18 * 6 + (-4)) * 9 = -1008.

Obviamente, sin ver el código es imposible ayudarte más.

oo muchas gracias, eso era todo xd


Título: Re: Duda con Calculo errado
Publicado por: Tachikomaia en 21 Octubre 2020, 01:57 am
¿O sea que C o C++ hace las operaciones así sin tener en cuenta que * se aplica antes que +?


Título: Re: Duda con Calculo errado
Publicado por: K-YreX en 21 Octubre 2020, 02:09 am
No, por defecto toma la precedencia de operadores correctamente.
Supongo que en este caso estaba implementando un algoritmo propio que replicase ese comportamiento.