Bueno, primero una aclaracion, que es que trabajar por la noche no es bueno y te saltas pasos. realmente el código es así, aunque no varia mucho la cosa ya que el eror sigue siendo el mismo:
Código C++:
Ver originalvoid cruce(string &hijo1, string &hijo2){
if (NUM_ALE < TASA_CRUCE){
int punto = (int) (NUM_ALE * LON_CROMO);
string t1, t2;
t1=hijo1.substr(0, punto) + hijo2.substr(punto+1, LON_CROMO);
t2=hijo2.substr(0, punto) + hijo1.substr(punto+1, LON_CROMO);
hijo1=t1; hijo2=t1;
}
}
TASA_CRUCE vale 0.45 y NUM_ALE es una macro que devuelve un float entre 0 y 1.