Hola a todos y que tengan un muy buen día.-
En este caso estoy estudiando operadores, Prioridad y asociatividad y realmente estoy trabado, en el programa, la segunda sentencia logro establecer qué el resultado sea 119 (creo estar en lo correcto).-
#include <stdio.h>
int main(){
int a = 3 + 4 *(8 * (4 - ( 9 + 3) /6)); //67
int b = 4 * 3 * 5 + 8 * 4 * 2 - 5; //119
printf("\n El resultado de 3 + 4 *(8 * (4 - ( 9 + 3) /6)) es...: %d", a);
printf("\n\n El resultado de 4 * 3 * 5 + 8 * 4 * 2 - 5 es........: %d", b);
printf("\n\n");
return 0;
}
Citar
4 * 3 * 5 + 8 * 4 * 2 - 5
4 * 3 = 12
12 * 5 = 60
8 * 4 = 32
32 * 2 = 64
64 + 60 = 124
124 – 5 = 119
Pero la primera ni hay logro plasmar los pasos, bueno espero como siempre que me ayuden a descifrar el enigma que me tiene bastante ocupado.-
Por otro lado, quisiera saber si les parece muy difícil hacer un programa para emular el compilador, o sea, mostrar paso a paso la fórmula para llegar al resultado final,
alguien lo hizo alguna vez.-
Saludos.
Daniel
3 + 4 * (8 * (4 - ( 9 + 3) /6))
Despeja la X ;D
3 + 4 * 8 * X = 67
Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.
http://es.wikipedia.org/wiki/Anexo:Operadores_de_C_y_C%2B%2B (http://es.wikipedia.org/wiki/Anexo:Operadores_de_C_y_C%2B%2B)
con respecto a hacer la formula por partes, no, un debug la hará un solo paso
en la segunda
int b = 4 * 3 * 5 + 8 * 4 * 2 - 5
la parte asociativa agarrará los operadores de mayor prioridad primero
int b = (4 * 3 * 5) + (8 * 4 * 2) - 5
en la primera
int a = 3 + 4 *(8 * (4 - ( 9 + 3) /6))
pasa a ser algo como
int a = 3 + (4 *(8 * (4 - ( (9 + 3) /6) ) ) )
o
a= (9 + 3) /6
b= 4-a
c= 8*b
d= 4*c
e=3+d
siendo e el resultado
Realmente no es un problema de programación, sigue el mismo orden que las operaciones matemáticas normales.
Cita de: amchacon en 4 Abril 2014, 12:23 PM
Realmente no es un problema de programación, sigue el mismo orden que las operaciones matemáticas normales.
..Para las cuales aquí (http://foro.elhacker.net/programacion_cc/iquestporque_este_resutado_matematico-t411379.0.html;msg1931653#msg1931653)tienes una referencia.
En cualquier caso, en la primera expresión tendrías, matemáticamente hablando, un paréntesis de más, sería más bien:int a = 3 + 4 *8 * (4 - ( 9 + 3) /6); //67
Saludos!.
Hola.
Muchas gracias a los 4 me han sido de gran ayuda.
Saludos.
Daniel