per ora due considerazioni formali
srand inizializza la sequenza dei numeri casuali con il seme per argomento, puoi usare il timstamp attuale, per esempio o come hai fatto il pid, che però non è tanto univoco. Comunque la inizializzazione la puoi fare una sola volta nel programma e la sequenza di numeri casuali è definita.
Mi è caduto l'occhio sulla tua definizione dei prodotti, io utilizzerei un enumeratore in questo caso, che ti facilita la programmazione
codice:
...
typedef enum PRODOTTO {
TABACCO=1,
ACCIAIO,
FERRO,
AUTOMOBILI,
PNEUMATICI
} PRODOTTO ;
...
typedef struct {
int quantita;
PRODOTTO merce;
int identificatore;
} boat;
...
/* metodo che assegna in modo casuale un tipo di merce */
PRODOTTO get_merce()
{
return rand() % 5 + 1; //assegna un valore casuale da 1 a 5 alla variabile valore
}
...