Ci sono diversi errori:
1) Il main si definisce così:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
return EXIT_SUCCESS;
}
oppure se servono gli argomenti da linea di comando
#include <stdio.h>
#include <stdlib.h>
int main(int argv,char **argv)
{
return EXIT_SUCCESS;
}
2)
while((c=getchar()!='\n')&&(i<MAX))
Qui devi controllare quale operatore ha la precedenza. Ricorda che l'assegnamento ha la priorità più bassa.
3) Occhio a MAX. Rischi un buffer overflow (errore STATUS_ACCESS_VIOLATION se usi Windows,SIGSEGV se usi Linux).
4) Dichiarare una costante con il qualificatore const non è una buona idea. Meglio usare le direttive del preprocessore C,come #define.
5) Per i contatori,le dimensioni etc è bene usare size_t come tipo.
6) Non controlli che i puntatori passati alle funzioni siano validi.
7) Perché le funzioni dovrebbero essere void? Meglio fare qualcosa del genere
.....
#include <stdbool.h>
static bool lettura(......);
o se ti è stato imposto di adeguarti al C89
typedef enum {FALSE,TRUE} boolean_t;
static boolean_t lettura(......);
..in modo da avere un feedback dalla funzione e sapere così se ha avuto successo o no.
8 ) Devi essere coerente con lo stile di programmazione che adotti: se inizi a scrivere gli identificatori in minuscolo non puoi in seguito scrivere le iniziali in maiuscolo. È assolutamente vietato scrivere i nomi di variabili interamente in maiuscolo; il maiuscolo è riservato ai nomi di costanti.