Salve non funziona il seguente programma non stampa quello che dovrebbe stampare potete aiutarmi?
/* Corso di laurea: Ingegneria Informatica
* Esame: Fondamenti di Informatica
* Prova scritta del: 23 gennaio 2006
*
* Si scriva un programma che soddisfi le seguenti specifiche:
* - carica da un file di testo un elenco di modelli di autovetture; per
* ogni modello di autovettura le informazioni sono: marca, modello e
* prezzo
* - visualizza a video l'elenco caricato;
* - ordina l'elenco in base alla marca e quindi al modello;
* - visualizza a video l'elenco ordinato;
* - elimina record duplicati nell'elenco: due o più record sono da
* considerarsi duplicati se coincidono tutti e tre i relativi campi;
* nel caso vengano rilevati dati duplicati il programma elimina tutte
* le copie del dato tranne una;
* - visualizza a video l'elenco
* - salva in un file l'elenco rispettando la sintassi del file riportata
* in basso nelle ulteriori specifiche
*
* Ulteriori specifiche:
* - il file di testo contentente l'elenco è strutturato come segue:
* la prima riga contiene un numero intero che rappresenta quanti record
* sono presenti nell'elenco salvato su file;
* su ogni riga c'è un record riportato secondo la seguente sintassi:
* !Campo_Marca!Campo_Modello!Campo_Prezzo!
* - la dimensione massima dell'elenco gestito è pari a 100
* - oltre al main si scrivano funzioni per effettuare le operazioni di:
* -> caricamento dell'elenco da file
* -> ordinamento dell'elenco mediante algoritmo di bubble sort
* -> elimina i record duplicati nell'elenco
* -> visualizzazione a video dell'elenco
* -> salvataggio elenco su file
*
* Altro:
* - per maggiore chiarezza è stato allegato al presente compito un file di
* input di esempio ("auto.txt")
*/
#include <stdio.h>
#include <stdlib.h>
#define MAX 100
int carica(char marca[][MAX],char modello[][MAX],float prezzo[][MAX]);
void stampa(char marca[][MAX],char modello[][MAX],float prezzo[][MAX],int rec);
int main()
{
int rec,i;
char marca[MAX][MAX],modello[MAX][MAX];
float prezzo[MAX][MAX];
rec=carica(marca,modello,prezzo);
stampa(marca,modello,prezzo,rec);
system("PAUSE");
return 0;
}
int carica(char marca[][MAX],char modello[][MAX],float prezzo[][MAX])
{
int rec,i;
FILE *autom;
char nome[MAX];
printf("Inserisci il nome del file da aprire:\n");
scanf("%s", nome);
autom=fopen(nome,"r");
if(autom==NULL)
{
printf("Errore nell'apertura del file\n");
system("pause");
exit(1);
}
fscanf(autom,"%d", &rec);
for(i=0;i<rec;++i)
fscanf(autom,"!%s!%s!%s!", marca[i],modello[i],prezzo[i]);
return rec;
}
void stampa(char marca[][MAX],char modello[][MAX],float prezzo[][MAX],int rec)
{
int i;
printf("\tMARCA\tMODELLO\tPREZZO\n");
for(i=0;i<rec;++i)
printf("\t%s\t%s\t%f\n",marca[i],modello[i],prezzo[i] );
}