risolto il problema sistemando il codice nella seguente maniera:

codice:
#include <stdio.h>

#define MAX_INS 100

int main()
{
 int vett[MAX_INS];
 int i,N,max;

 do{
        printf("Inserisci un intero N: ");
        scanf("%d", &N);
        if(N<1 || N>MAX_INS)
        printf("ERRORE:Inserire valore intero compreso tra 1 e 100\n");
    }
    while(N<1 || N>MAX_INS);

    for(i=0; i<N; i++){
     printf("Inserisci valore n.%d nell'indice %d:", i+1,i);
     scanf("%d", &vett[i]);
    }

    max=vett[0];
    for(i=0; i<N; i++)
     if(vett[i]>max)
      max=vett[i];

    for(i=0; i<N; i++){
     printf("%d ", vett[i]);
    }

    printf("\nIl valore massimo inserito e': %d\n", max);
}
ora il programma funziona. Quello che non capisco è che ho variato solamente la posione delle istruzioni.