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
Si me pudierais ayudar a descubrir por qué os estaría muy agradecido
#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"; } }
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