Problema de acceso a una condición

Iniciado por poliche, 6 Octubre 2016, 01:08 AM

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

poliche

Muy Buenas,

Necesito ayuda con un error de c++ que no sé resolver.
El caso es que estoy realizando un programa para estudiar la transferencia de calor por conducción en una placa 2D, con lo que necesito construir una malla sobre la placa, asignando coordenadas a cada nodo y cara. El hecho es que el programa funciona bien hasta que la iteración llega a la coordenada y=0.6 y no logro entender por qué, ya que, aunque cuando reviso el vector donde guardo las coordenadas y (y_face) el sexto valor es igual a 0.6, el programa no me deja acceder a sentencias condicionales dónde y==0.6.

A continuación os adjunto la parte del código que estoy usando para revisar el error y ni siquiera con un programa tan sencillo logro acceder a la condición y==0.6:

// programa_2


Código (cpp) [Seleccionar]
#include<iostream>
#include<stdlib.h>

using namespace std;

int main(void){
int N_h=11, N_v=8;
double y_face[N_v], y_node[N_v+1]; //faces_and_nodes_coordinates
double L=1.1, H=0.8; //geometric_definition
int i=0;



cout<<"y_face:"<<"\n";
for (i=0;i<=N_v;i++){
y_face[i]=(H/N_v)*i;
        cout<<y_face[i]<<endl;
    }
    cout<<"y_node:"<<"\n";
    for (i=1;i<=N_v;i++){
        y_node[i]=(y_face[i-1]+y_face[i])/2;
        cout<<y_node[i]<<endl;
    }
    y_node[0]=0; //first node y coordinates
    y_node[N_v+1]=H; //last node y coordinates
if (y_face[6]==0.6){
cout<<"hola";
}

}


Si me pudierais ayudar a descubrir por qué os estaría muy agradecido


y_face:
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
y_node:
0.05
0.15
0.25
0.35
0.45
0.55
0.65
0.75

--------------------------------
Process exited with return value 0
Press any key to continue . . .

Esto es lo que obtengo, como veis a pesar de que el sexto valor del vector y_face es 0.6, el programa no muestra la palabra "hola" por pantalla...

MOD: No hacer doble post. Usar etiquetas GeSHi