Grazie mille torn, ci avevo pensato anche io. Ultima cosa, quando vado a eseguire un job, lui mi esegue il job che è più veloce quindi con il minor tempo di esecuzione e va benissimo fino qui, poi quando vado a eliminare i job eseguiti, non mi fa visualizzare i job rimasti, come se li eliminasse tutti quanti e invece dovrebbe eliminare solo il job eseguito ..
codice:
void execute(char job[][20],int tempo[0],int esec[0]){ int minore,indice,i;
indice = 0;
minore = tempo[0];
for(i=0;i<MAX;i++){
if(job[i][0]!='x'){
if(tempo[i]<minore){
minore = tempo[i];
indice = i;
}
}
}
printf("Programma in esecuzione: %s",job[indice]);
sleep(tempo[indice]*100);
esec[indice] = 1;
job[indice][0] = 'x';
return;
}
void eliminatejob(char job[][20],int tempo[0],int esec[0]){
int i;
for(i=0;i<MAX;i++){
if(job[i][0] != 'x'){
if(esec[i] = 1){
job[i][0] = 'x';
tempo[i] = 0;
esec[i] = 0;
}
}
}
printf("Programmi rimasti: ");
for(i=0;(i<MAX);i++){
if(job[i][0]!='x'){
printf("\n\t %s - %d - %d\n",job[i],tempo[i],esec[i]);
}
}
return;
}
Guardandolo così sembra che non ci sia nessun problema perchè, ogni for visualizza solo i job inseriti e non quelli che hanno la 'x' diciamo così, dopo che ho eseguito il job gli da il nome 'x' così non lo visualizza e simula l'eliminazione. Il problema è che sembra che gli elimina tutti ..