Título: ¿Porqué este resutado matemático? Publicado por: CoolTesting en 26 Marzo 2014, 08:07 am Muy buenos dias, bueno estuve en una página en la cual te hacian un test para ver si sabes sobre el lenguage <b> C </b> y saqué 8 respuestas correctas de 18 xD, bueno ese no es el rollo, me explico.
Lo que pasa es que en una de esas preguntas me apareció este código: #include <stdio.h> #include <conio.h> int main(){ int a, b, c; a = 5; b = 1; c = ( a + 5 * 2 ) * ( b + 6 / 2 ) + ( a * 2 ); printf( "%i", c ); getch(); } y Me preguntaba que cual era el resultado, yo simplemente dije que el resultado es <b> 36 </b> ¿Porqué? Bueno, ahí dice que a es igual a 5 y b es igual a 1.. Entonces. ( 5 + 5 * 2 ) * ( 1 + 6 / 2 ) + ( 5 * 2 ) = 36. ¿Porqué en la respuesta del el test me dijo que el resultado es 70, y no tanto eso. Yo tambien lo probé en el compilador dev c++ porque pensé que era algún error de la página (Ahora veo que el que está en el error soy yo xD) y bueno efectivamente me dió el resultado 70, alguien me puede explicar? No soy experto en la materia, si no hubiese sabido porqué da 70, muchisimas gracias por adelantado. Título: Re: ¿Porqué este resutado matemático? Publicado por: eferion en 26 Marzo 2014, 08:12 am ( a + 5 * 2 ) * ( b + 6 / 2 ) + ( a * 2 )
( a + 10 ) * ( b + 3 ) * ( a * 2 ) ( 5 + 10 ) * ( 1 + 3 ) * ( 5 * 2 ) 15 * 4 + 10 60 + 10 70 Los operadores de multiplicación y división SIEMPRE tienen prioridad sobre los de suma y resta... son matemáticas básicas. Título: Re: ¿Porqué este resutado matemático? Publicado por: da8332 en 29 Marzo 2014, 23:35 pm Por curiosidad cual es esa web?
Título: Re: ¿Porqué este resutado matemático? Publicado por: leosansan en 30 Marzo 2014, 09:56 am Completando a eferion, el orden de prioridad lo podemos resumir en: * paréntesis, llaves, corchetes (estos dos últimos en Mates). * potencias y raíces. * multiplicaciones y divisiones. * sumas y restas. * Si existen funciones se les aplica el orden de prioridades anterior. * Y se opera de izquierda a derecha. Lo último no tiene nada que ver con la propiedad conmutativa sino con: * de izquierda a derecha: ** 6/2: 6 dividido por 2 correcto. ** 6^2: 6 elevado a 2. correcto. * de derecha a izquierda: ** 6/2: 2 dividido por 6. incorrecto. ** 6^2: 2 elevado a 6. incorrecto. ¡¡¡¡ Saluditos! ..... !!!! (http://st.forocoches.com/foro/images/smilies/aaaaa.gif) |