ayuda con bucle if

bugmenot
23 de Enero del 2010
Hola. Estoy tratando de hacer esto:
si una variable1 es mayor o igual que 0.85 pero distinta de 0.89 entonces variable2++, si variable1 es igual a 0.89 variable2=variable2.
Pues hago:
if (variable1!=0.89 && variable1>=0.85) variable2++;
else if (variable1==0.89) variable2=variable2;

pero no me da.

M3LiNdRu
23 de Enero del 2010
Supongo que las variables las declaras como double no?
Otra cosa, no entiendo porque haces el ultimo if else, es ilógico poner a = a; No hace falta que lo pongas.

bugmenot
23 de Enero del 2010
El programa es en c. Las variables son float.
La cuestion es que si pongo por ejemplo 0.86 pues q me haga variable2++, si pongo 0.89 q no me haga nada, y si pongo 0.7 pues que no me haga nada.
¿Cómo hago entonces?

M3LiNdRu
23 de Enero del 2010
La question es que solo tiene que poner una condicion, o sea, un solo if. Para cuando te interese incrementar variable2

bugmenot
23 de Enero del 2010
¿En tal caso seria algo asi?
if (0.85<=variable1<=0.99 && variable1!=0.89) variable2++


M3LiNdRu
23 de Enero del 2010
Segun tu primer post:

si una variable1 es mayor o igual que 0.85 pero distinta de 0.89 entonces variable2++,

entonces:

if (variable1 >= 0.85 && variable1 != 0.89) variable2++;

Al ser con una condicion con una and. Si la primera condicion no se cumple, ya no hace la segunda. Ha esto se le llama evaluación perezosa.

bugmenot
23 de Enero del 2010
La cuestion es que hago eso y parece que solo mira la primera parte del if y el distinto de 0.89 no lo hace.

bugmenot
23 de Enero del 2010
Bueno solucionado.
El problema era que no se pueden comparar 2 float entre si.