Nel passaggio dall IF all ELSE, la variabile spazio_ rack non rimane aggiornata.
Ho estratto la parte di codice che mi interessa, tutto sarebbe eccessivo sono più di 400 righe.
if (matrice_domanda[(matrice_clienti[i][t-2])-1][t-1]<=spazio_rack[matrice_rack[(matrice_clienti[i][t-2])-1][t-2]])
{
spazio_rack[matrice_rack[(matrice_clienti[i][t-2])-1][t-2]]=spazio_rack[matrice_rack[(matrice_clienti[i][t-2])-1][t-2]]-matrice_domanda[(matrice_clienti[i][t-2])-1][t-1];
matrice_rack[(matrice_clienti[i][t-2])-1][t-1]=matrice_rack[(matrice_clienti[i][t-2])-1][t-2];
cout<<"CLIENTE "<<matrice_clienti[i][t-2]<<" sta nel RACK "<<matrice_rack[(matrice_clienti[i][t-2])-1][t-2];
f<<"CLIENTE "<<matrice_clienti[i][t-2]<<" sta nel RACK "<<matrice_rack[(matrice_clienti[i][t-2])-1][t-2]<<endl;
}
else
{
etichetta_2:
if(matrice_domanda[(matrice_clienti[i][t-2])-1][t-1]<=spazio_rack[r-1])
{
spazio_rack[r-1]=spazio_rack[r-1]-matrice_domanda[(matrice_clienti[i][t-2])-1][t-1];
matrice_rack[(matrice_clienti[i][t-2])-1][t-1]=r;
cout<<"CLIENTE "<<matrice_clienti[i][t-2]<<" sta nel RACK "<<matrice_rack[(matrice_clienti[i][t-2])-1][t-1]<<endl;
f<<"CLIENTE "<<matrice_clienti[i][t-2]<<" sta nel RACK "<<matrice_rack[(matrice_clienti[i][t-2])-1][t-1]<<endl;
}
else
{
if(r==new_rack)
{
new_rack=new_rack+1;
r=r+1;
spazio_rack[r]=slot;
goto etichetta_2;
}
else
{
r=r+1;
goto etichetta_2;
}
}
}
}