Ecco a te:

codice:
#include <stdio.h>
#include <stdlib.h>

int crescente(const int * a,const int * b)
{
  if (*a==*b)
    return 0;
  else
    if (*a < *b)
        return -1;
     else
      return 1;
}

int decrescente(const int * a,const int * b)
{
  if (*a==*b)
    return 0;
  else
    if (*a < *b)
        return 1;
     else
      return -1;
}

int main(int argc, char* argv[])
{
   int numbers[10]={1892,45,200,-98,4087,5,-12345,1087,88,-100000};
   int i;

  qsort(numbers,10,sizeof(int),crescente) ;
  printf("ordine crescente\n");

  for (i=0;i<9;i++)
    printf("%d\n",numbers[ i ]) ;

  qsort(numbers,10,sizeof(int),decrescente) ;
  printf("ordine decrescente\n");

  for (i=0;i<9;i++)
    printf("%d\n",numbers[ i ]) ;

  return 0;
}