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++;
}