Posso garantirti che non è il computer o il compilatore a sbagliare, verifica gli algoritmi, metti un po di ordine nel codice, rendi le funzioni rientranti.
Ti faccio anche notare che la funzione seguente è sbagliata, prendi come paramtro due cordinate che non utilizzi mai e lavori invece su variabili globali confrontando sempre e soltanto l'elemento in posizione 0 con l'elemento in posizione 1.
Verifica quello che hai scritto. ciao.
Ciaocodice:int Compenetrazione (struct coordinate posizione, struct coordinate dimensioni) { int i = 0,j = 1; if ((pacchi[j].posizione.x < (pacchi[i].posizione.x + pacchi[i].dimensioni.x)) && (pacchi[j].posizione.y < (pacchi[i].posizione.y + pacchi[i].dimensioni.y))) { return 1; } if ((pacchi[j].posizione.x < (pacchi[i].posizione.x + pacchi[i].dimensioni.x)) && (pacchi[j].posizione.z < (pacchi[i].posizione.z + pacchi[i].dimensioni.z))) { return 1; } if ((pacchi[j].posizione.z < (pacchi[i].posizione.z + pacchi[i].dimensioni.z)) && (pacchi[j].posizione.y < (pacchi[i].posizione.y + pacchi[i].dimensioni.y))) { return 1; } return 0; }

Rispondi quotando