Buenas.
Para empezar, la funcion scanvector recibe un puntero a un entero.
al definir int a[N];
a ya es un puntero, por lo que en scanvector(&a); le estas pasando un puntero a un puntero a int, no un puntero a int.
tendrias que haer scanvector(a);
La verdad que el algoritmo que usas para comprobar es algo raro, pero tiene un par de errores.
Aca te lo dejo, comparalo con el que tenes
int ordenados(int vec[N])
{
int i, contador=0;
for(i=0; i<(N - 1); i++)
if(vec[i]<=vec[i+1])
contador++;
if(contador== (N -1))
return 1; //Están ordenados sus elementos
return 0;
}
Saludos