乱数を10個選んで昇順(小→大)に並び替えるプログラムを組みましたが、実行するとエラーになります。
数字は選べているのですが、どうも並び替えるほうが問題のようです。どこが悪いのでしょうか。

for( i = 0; i < 10; i++){
for( j = i+1; j < 10; j++){
if(a[i]>a[j]){
min = j;
}
tmp=a[i];
a[i]=a[min];
a[min]=tmp;
}
}
for( i = 0; i < 10; i++){
printf("%d\n", a[i]);
}
return 0;
}