ragaaaaaa...ho urgente bisogno di correzioni!!
devo consegnare il programma a breve e..help help..
codice:#include <stdio.h> #include <stdlib.h> #define RIGHE 5 #define N 15 //definizione di un nuovo tipo typedef struct { char titolo[N]; char autore[N]; int prezzo; } Tabella; //dichiarazione di variabili globali Tabella tabella[RIGHE]; int record_inseriti; //prototipi delle funzioni void visualizzazione_record(); void ordinamento_bubble_sort_crescente(); void ord_sel_min (Tabella array[],int n); void inserimento_nuovo_record(); int main() { //dichiarazione di variabili locali per il main enum { inserimento, ordinamento_descrescente, visualizzazione, uscita } operazione; do { //pulisce lo schermo system("cls"); printf("Che operazione vuoi eseguire? "); printf("\n\t 1. Inserisci nuovo disco"); printf("\n\t 2. Restituisci disco con prezzo minore"); printf("\n\t 3. Visualizza tutti dischi"); printf("\n\t 4. Esci\n\t "); scanf("%d", &operazione); //scarta il carattere di a capo getchar(); switch(--operazione) { case inserimento: inserimento_nuovo_record(); break; case ordinamento_descrescente: ord_sel_min (); printf("\nIl vettore e' stato ordinato secondo oridinamento decrescente dei dischi"); break; case visualizzazione: visualizzazione_record(); break; case uscita: break; default: printf("\nHai effettuato una scelta non valida"); } if(operazione != uscita) { printf("\n\nPremi INVIO per continuare."); getchar(); } } while(operazione != uscita); printf("\nPremi INVIO per uscire."); getchar(); return 0; } //definizione della funzione di visualizzazione dei record void visualizzazione_record() { int i; if(!record_inseriti) { printf("\nNon sono presenti record all'interno della tabella."); return; } printf("\n%-15s %-15s %6s", "Titolo", "Autore", "Prezzo"); for(i = 0; i < record_inseriti; i++) { printf("\n%-15s %-15s %6d", tabella[i].titolo, tabella[i].autore, tabella[i].prezzo); } } //definizione della funzione di ordinamento attraverso algoritmo del selection sort void ord_sel_min (Tabella array[],int n) { int i, indice_min; double min_array; for(i=0;i<n-1;i++) { min_val_ind(&array[i].prezzo, n-i, &min_array, &indice_min); scambiare_c(&array[i].prezzo, &array[indice_min+i].prezzo); } } void min_val_ind (Tabella a[], int n, double *min_array, int *i_min) { int i; *min_array = a[0].prezzo; *i_min = 0; for (i=1;i<n;i++) if( *min_array > a[i].prezzo) { *min_array = a[i].prezzo; *i_min =i; } } void scambiare_c(char*c1,char *c2) { char temp; temp=*c1; *c1 =*c2; *c2 =temp; } //definizione della funzione di inserimento di un nuovo record void inserimento_nuovo_record() { if(record_inseriti == RIGHE) { printf("Hai inserito il numero massimo di dischi all'interno della tabella."); return; } printf("\nInserisci il titolo del disco: "); gets(tabella[record_inseriti].titolo); printf("Inserisci il nome dell'autore: "); gets(tabella[record_inseriti].autore); printf("Inserisci il prezzo: "); scanf("%d", &tabella[record_inseriti].prezzo); getchar(); printf("\nIl disco e' stato inserito con successo."); record_inseriti++; }

