Salve a tutti, sto lavorando ad un programma che, una volta creata una struttura dati di questo tipo:
struct typedef{
char nomelavoro[1];
int costo;
int priorita; // priorita' 1,2 o 3
}lavoro;
ed una funzione che carichi i dati dei lavori da effettuare all'interno del vettore lavoro ElencoLavori[100], stampi a video i dati del lavoro più economico di priorita' 1.
Io la funzione l'ho creata in questo modo:
void PochiSoldi (Lavoro ElencoLavori[], int n)
{
int i=0, min_costo=0, m=0;
for(i=0;i<n;i++)
{
if((ElencoLavori[i].priorita==1)&&(ElencoLavori[i].costo>min_costo))
min_costo=ElencoLavori[i].costo;
}
for(i=0;i<n;i++)
{
if((ElencoLavori[i].priorita==1)&&(ElencoLavori[i].costo<min_costo))
{
min_costo=ElencoLavori[i].costo;
m=i;
}
}
printf("\n\nIl lavoro a priorita' 1 più economico è: ");
printf("\nStanza: %s; Riparazione: %s; Costo %d conchiglie; Ore: %d",
ElencoLavori[m].stanza,
ElencoLavori[m].riparazione,
ElencoLavori[m].costo,
ElencoLavori[m].ore);
}
Il problema è che, così facendo, se per esempio carico soltanto un lavoro nel vettore e dico che questo valore è di priorità 2 o 3(quindi non 1), mi stampa comunque a video il lavoro più economico, nonostante lavori di priorità 1 non siano presenti. Potreste darmi gentilmente una mano? Ho l'esame dopodomani