Duda en algoritmo matemático

Iniciado por CoolTesting, 6 Abril 2014, 15:20 PM

0 Miembros y 1 Visitante están viendo este tema.

CoolTesting

Disculpen mi ignorancia, por más que he buscado no encuentro porqué tiene que dar este resultado. Simplemente no lo veo lógico (quizás sea porque soy nuevo en c++).

No sean tan duros conmigo, necesito saber porqué me da este resultado miren esto:

#include <stdlib.h>
#include <stdio.h>
#include <iostream>
using namespace std;

int main(){
   
  int a = 5;
  int b = 10;
   
  int c = a + b;
  int be = c*2;
  cout <<be <<endl;
    system("pause");
    return 0;
   
}


Efectivamente, esto me da 30. Tal y como lo esperaba, pero pasa algo "EXTRAÑO" para mi cuando lo hago de esta forma:


#include <stdlib.h>
#include <stdio.h>
#include <iostream>
using namespace std;

int main(){
   
  int a = 5;
  int b = 10;
   
  int c = a + b * 2;
  cout <<c <<endl;
    system("pause");
    return 0;
   
}


Ahora, en lugar de darme 30 como lo esperaba, me da 25. Esa es mi duda alguien porfavor que sepa sobre la materia me oriente?
El ganador es el que sabe perder.

skapunky

Los operadores en cualquier lenguaje, no solo C++ tienen un orden en caso de no usar ().

Deberías leerte el primer tema de introducción de cualquier libro de programación para aprender que si en las operaciones no pones paréntesis cada operador tiene un orden.

Prueba:

int c = (a + b) * 2;

Ya verás como dá 30...
Killtrojan Syslog v1.44: ENTRAR

CoolTesting

El ganador es el que sabe perder.

z3nth10n


Interesados hablad por Discord.

Vaagish

CitarEso no es programación, eso son matemáticas de 1º

No se que sera ESO, (calculo que liceo como se dice por acá). Como dijo Ikillnukes, no tiene nada que ver con programación,. si CoolTesting realizase la misma cuenta sobre un papel tendría el mismo resultado..

PD: o debería jeje

Saludos!

Bob1098

Eso es debido, como ya han dicho todos, a que los operados siguen un orden tanto en matemáticas como en C++ y la mayoría de los lenguajes de programación. En este caso, predomina la multiplicación.

PD: Las librerías stdio.h y stdlib.h me parece que sobran :)