[C con Clase] Una pequeña duda con los ficheros

Salvador Pozo salvador en conclase.net
Mar Abr 24 23:49:22 CEST 2012


El pasado 2012-04-24 19:16:21, Marcos escribió:
 
M> En la búsqueda binaria, a ver me explico:
M> Pongo el ejemplo de que tenemos en la variable sup = 10, entonces resuelvo
M> la ecuación para averiguar n -> n = 0 + (10 - 0) /2 = 5, bien ahora tengo n
M> = 5, pero resulta que en ese registro no está lo que busco y ese teléfono
M> es menor que el teléfono que yo he puesto, entonces a inf le daríamos el
M> valor de n + 1 ( en nuestro caso 6) y vuelvo a pasar por la ecuación y lo
M> que pasa es que si la hago: n = 6 + ( 10 - 6) / 2 = 5, es otra vez 5 porque
M> sí sumo y resto el mismo número al final queda el mismo número, no se si me
M> explico.

Hola:

Estás cometiendo un error al evaluar la expresión, que no es una ecuación.

n = 6 + (10-6)/2;

Primero se evalúa el paréntesis:

n = 6 + 4/2;

A continuación la división, que tiene mayor prioridad que la suma:

n = 6 + 2;

Por último la suma:

n = 8;

Como ves, el resultado es que se asigna a n el valor 8, no 5.

No pienses en las expresiones C/C++ como ecuaciones, son expresiones, y para evaluarlas se siguen las reglas de precedencia de C.

Hasta pronto.

-- 
Salvador Pozo (Administrador)
mailto:salvador en conclase.net


Más información sobre la lista de distribución Cconclase