Favor revisen este codigo...tengo errores con el ordenamiento de Seleccion e Insercion...ayudenme a solucionarlo...
Gracias...
#include<stdio.h>
#include<conio.h>
#define N 10
/*BURBUJA*/
void burbuja(int ARREGLO[N])
{
int x;
int z;
int aux;
x = 0;
  while(x < N)
  {
     z = N-1;
     while(z >= 0)
     {
       if(ARREGLO[z] < ARREGLO[z - 1])
       {
     aux = ARREGLO[z];
     ARREGLO[z] = ARREGLO[z - 1];
     ARREGLO[z - 1] = aux;
       }
       z--;
     }
     x++;
   }
}
/*INSERCION*/
void insercion(int ARREGLO[N])
{
   int x;
   int z;
   int aux;
   int b;
   /*int flag;*/
   for(x = 1; x < N; x++)
   {
       aux = ARREGLO
       z = x - 1;
 /*      flag = 0;*/
       while(b == 0 && z >= 0)
       {
       if(aux < ARREGLO[z])
       {
          ARREGLO[z + 1] = ARREGLO[z];
          z--;
       }
       else
          b = 1;
       }
       ARREGLO[z + 1] = aux;
   }
}
/*SELECCION*/
void seleccion(int ARREGLO[N])
{
     int i;
     int j;
     int min;
     int aux;
     i = 0;
     while(i < N)
     {
   min = i;
   j = i + 1;
   while (j < N)
   {
       if(ARREGLO[j] < ARREGLO
)
       {
         min = j;
         aux = ARREGLO;
         ARREGLO = ARREGLO[min];
         ARREGLO[min] = aux;
       }
       j++;
   }
   i++;
     }
}
int main()
{
   int ARREGLO[N], COPIA[N];
   int i;
   char op;
   printf("Ingreso de numeros...\n");
   for(i=0; i<N; i++)
   {
      printf("Numero %d = ", i+1);
      scanf("%d", &ARREGLO);
   }
   for(;
   {
     clrscr();
     printf(" ***METODOS DE ORDENAMIENTO***\n\n");
     printf(" 1.- Metodo Burbuja.\n");
     printf(" 2.- Metodo Insercion.\n");
     printf(" 3.- Metodo Seleccion.\n");
     printf(" 4.- Salir.\n");
     printf(" \n\nEscoje tu opcion: ");
     op = getche();
     if(op>='1' && op<='3')
     {
       for(i=0; i<N; i++)
     COPIA = ARREGLO;
     }
     if(op=='1')
       burbuja(COPIA);
     else if(op=='2')
       insercion(COPIA);
     else if(op=='3')
       seleccion(COPIA);
     else if(op=='4')
       break;
     else
     {
       printf("\nOpcion invalida");
       getch();
     }
     if(op>='1' && op<='3')
     {
       printf("\n\nArreglo original: ");
       for(i=0; i<N; i++)
     printf("%d  ", ARREGLO);
       printf("\nArreglo ordenado: ");
       for(i=0; i<N; i++)
     printf("%d  ", COPIA);
       getch();
     }
   }
   return 0;
}