Проблема здесь:
int n, a[n], i, j, temp;
Объявления делаются последовательно. Если вы напишите это в несколько более удобной для чтения форме (но в эквивалентной форме), вы получите следующее:
int n;
int a[n]; // here the variable n has not yet been initialized
// it contains an indeterminate value, and therefore the a array
// will have an indeterminate size and the program will have
// so called "undefined behaviour " (google that)
int i;
...
Вы должны написать начало вашей программы так:
int main()
{
int n,i,j,temp;
printf("Enter number of inputs.\n");
scanf("%d",&n);
int a[n]; // now n has a determinate value
printf("Enter inputs\n");
Отказ от ответственности: для краткости проверка ошибок не производится.
Всегда компилировать с включенными предупреждениями и прослушивать их. Многие из них на самом деле являются ошибками. В частности, предупреждение переменная 'somevar' не инициализируется при использовании здесь всегда является ошибкой.