なんで全部ソートしたがるんだろう。
#include <stdio.h>
int nth_element(int * data, int length, int n)
{
  int   left = 0;
  int   right = length - 1;
  int   pivot = data[n];
  while (left <= right) {
    for (; data[left] < pivot; left++);
    for (; data[right] > pivot; right--);
    if (left <= right) {
      int temp = data[left];
      data[left++] = data[right];
      data[right--] = temp;
    }
  }
  return ((n >= left)  ? nth_element(data + left, length - left, n - left) :
  (n <= right) ? nth_element(data, right + 1, n) :
  data[n]);
}
int main(void)
{
  int data[5];
  scanf("%d%d%d%d%d", data, data + 1, data + 2, data + 3, data + 4);
  printf("%d\n", nth_element(data, 5, 2));
  return 0;
}