Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: poliche en 6 Octubre 2016, 01:08 am



Título: Problema de acceso a una condición
Publicado por: poliche en 6 Octubre 2016, 01:08 am
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
  1. #include<iostream>
  2. #include<stdlib.h>
  3.  
  4. using namespace std;
  5.  
  6. int main(void){
  7. int N_h=11, N_v=8;
  8. double y_face[N_v], y_node[N_v+1]; //faces_and_nodes_coordinates
  9. double L=1.1, H=0.8; //geometric_definition
  10. int i=0;
  11.  
  12.  
  13.  
  14. cout<<"y_face:"<<"\n";
  15. for (i=0;i<=N_v;i++){
  16. y_face[i]=(H/N_v)*i;
  17.        cout<<y_face[i]<<endl;
  18.    }
  19.    cout<<"y_node:"<<"\n";
  20.    for (i=1;i<=N_v;i++){
  21.        y_node[i]=(y_face[i-1]+y_face[i])/2;
  22.        cout<<y_node[i]<<endl;
  23.    }
  24.    y_node[0]=0; //first node y coordinates
  25.    y_node[N_v+1]=H; //last node y coordinates
  26. if (y_face[6]==0.6){
  27. cout<<"hola";
  28. }
  29.  
  30. }
  31.  
  32.  
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