grazie. in qualsiasi caso l'errore lo dà sempre,anche con for. è come se non riuscisse a leggere l'ultima variabile. Il nuovo codice (corretto senza vedere le rsp...(faccina: vanitoso ) )

codice:
//verificare che gli elementi di a[n] siano in ordine crescente

#include <stdio.h>
#include <stdlib.h>
#define max 100

    //prototipo = dichiarazione funzioni
    void Riprova();
    void NonCrescente();
    //fine prototipo (nota: i prototipi vanno prima di main() perchè il pc legge dall'alto al basso)

    void NonCrescente()
    {
        printf("\nGli elementi non sono in ordine crescente");
        Riprova();
    }

    void Riprova()
    {
        char risposta;
        printf("\nVuoi riprovare?(s/n) ");
        risposta=getche();
        printf("\n");
        if(risposta=='s')
        {
            main();
        }
    }

int main()
{

    int n=0,m=0,ciao=0,i=0,a[max];
    int SonoOrdineCrescente=0;

    printf("Ciao. Inserisci n: ");
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {//ERROR: chissà perchè il while non funziona?
     //ERROR: avevo aggiunto i=0;
    printf("Inserisci il NUMERO %d di %d: ",i,n-1);
    scanf("%d",a[i]);
    }


    //Verificare che l' elemento n-(n-1) sia maggiore di n-(n-2)
    for(i=1,m=0;m<n;i++)
    {
        while(a[m]<a[i])
        {
            SonoOrdineCrescente=1;
        }
        while(a[m]>=a[i])
        {
            NonCrescente();
        }
        if(i=n-1)
        {
            m++;
            i=m++;
        }
        else{}
    }
    printf("\nGli elementi sono in ordine crescente");
    Riprova();
}