Salve, sono sempre io con i miei quesiti da niubbo ..
Allora sono sicuro che anche questa è una banalità. Il programma non visualizza l'ultima tabella e il codice mi sembra giusto .. vi posto
codice:
int main(int argc, char *argv[]) {
roba varia ...
char decision[80];
printf("\nPremi il tasto ENTER attivare il processo ", decision);
if(gets(decision)) {
roba varia ...
for (j = 0; j < n; ++j) {
vet[y]=arrayOne[y];
//PERTURBAZIONE CASUALE////////
set = (rand()%100);
double r = ((double)set/100)*5;
score[j]=((double)p[j]/(double)w[j])+(double)r;
printf("OBJ: %d, Profitto: %d, Peso: %d, Item: %d, Score: %.3f\n", arrayOne[j], p[j], w[j], q[j], score[j]);
}
printf("\n");
printf("Esecuzione algoritmo con ordinamento O(nlogn)\n\n");
for (j = 0; j < n; ++j) {
////Ordinamento decrescente ------------------------------------------
for (i=0; i<n; i++) {
vet[i]=arrayOne[i];
}
int salto,tempItem;
double tempScore;
for (salto = n/2; salto > 0; salto /=2)
for (i = salto; i < n; i++)
for (j = i-salto; j >= 0; j-=salto) {
if (score[j] >= score[j+salto]) break;
tempScore = score[j]; score[j]=score[j+salto]; score[j+salto]=tempScore;
tempItem = vet[j]; vet[j]=vet[j+salto]; vet[j+salto]=tempItem;
arrayOne[i]=vet[i];
}
for (i=0; i<n; i++) {
arrayOne[i]=vet[i];
}
for (i = 0; i < n; ++i) {
if ((w[i] <= C )) {
x[i]=Min((C/w[i]),q[i]);
valore = valore + (p[i]*x[i]);
C = C - (w[i]*x[i]);
precedente = arrayOne[i];
contatore = contatore+1;
printf("OBJ %d; Profitto cumulato: %d; Dimensione: %d; Item: %d; CapacitaR %d.\n", precedente, valore, w[i], q[i], C);
}
}
}
t1=clock();
printf("\nPROCESSO CONCLUSO.\n");
printf("------------------------------\n");
printf("OBJ Processati: %d\n", contatore);
printf("Profitto: %d\n", valore);
printf("CapacitaR finale: %d\n", C);
printf("Tempo Totale: %.3f\n",((double)(t1 - t0)) / ((double)CLOCKS_PER_SEC));
printf("------------------------------\n");
printf("\n");
contatore1 = contatore;
valore1 = valore;
C1 = C;
tempo1 = ((double)(t1 - t0)) / ((double)CLOCKS_PER_SEC);
}
system("pause");
return 0;
}
L'ultima tabella non si legge e non perchè ...