Salve ragazzi ho scritto il seguente programmino in C++, praticamente inserisco dei valori in una struttura e dopo devo stampare il record che ha il campo "importo" minore di tutti gli altri.
ecco il codice:
Funziona tutto, solo che una volta inserito il "Nome fornitore", mi esce: "Errore di segmentazione"...codice:#include<iostream> using namespace std; typedef char *String; typedef struct { unsigned int id_cliente; String nomeFornitore; double importo; }offerta; void insert_offerta(offerta *elenco, int n, int i); void bestoffert(offerta *elenco, int n); int main() { offerta *elenco; int n, i; cout<<"Inserisci il numero delle offerte:"<<endl; cin>>n; elenco=new offerta[n]; insert_offerta(elenco, n, 0); bestoffert(elenco, n); } void insert_offerta(offerta *elenco, int n, int i){ /* SCOPO: * Mi permette di inserire ricorsivamente * le offerte nella struttura dati dinamica */ if(i==n){ cout<<"L'elenco è pieno!"<<endl; } else { cout<<"Inserisci l'id del fornitore: "<<endl; cin>>elenco[i].id_cliente; cout<<"Inserisci il nome del fornitore: "<<endl; cin>>elenco[i].nomeFornitore; cout<<"Inserisci l'importo: "<<endl; cin>>elenco[i].importo; insert_offerta(elenco, n, i+1); } } void bestoffert(offerta *elenco, int n){ int j, p; double min; min=elenco[0].importo; /* SCOPO: * Mi trova l'offeta minimia presente * nell'elenco */ for (j=1; j<n; j++){ if(min > elenco[j].importo){ min=elenco[j].importo; p=j; } } cout<<"AZIENDA CON OFFERTA MIGLIORE: "<<endl; cout<<"ID cliente: " <<elenco[p].id_cliente; cout<<"Nome fornitore: "<<elenco[p].nomeFornitore; cout<<"Importo migliore: "<<elenco[p].importo; }
![]()

Rispondi quotando