Что-то чепуха написана у вас в коде
Делается это просто в два шага:
1. Сортируется.
2. Убирается первый и последний элементы.
Код:
#include <stdio.h>
#include <conio.h>
#define N 10
void sort(int in[], int a=0, int b=N){
int i,j,mode;
if (a>=b) return;
for (i=a,j=b,mode=1;i<j;mode>0?j--:i++)
if (in[i] > in[j]) {
in[i]^=in[j]^=in[i]^=in[j];
mode=-mode;
}
sort(in,a,i-1);
sort(in,i+1,b);
}
int main() {
int i,*x=new int[N];
for (i=0;i<N;i++) scanf("%d",&x[i]);
sort(x); //сортируем
for (i=1;i<N-1;i++) { //убираем первый и последний элементы
x[i-1]=x[i];
printf("%d ",x[i-1]);
}
getch();
return 0;
}