[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