先说你不懂之后的那些代码,这是标准的插入排序算法——
scanf("%d",&n); // 读入一个新的数字n
for(i=0;i<10;i++)
if(n>a[i]) //现在的数组a是从大到小排序的,所以如果发现有小于n的数组元素a[i],n就应该取代a[i]的位置
{for(s=9;s>=i;s--) a[s+1]=a[s]; //先把a[i]之后的元素全部后移一格,于是a[i+1]的值变成了a[i]的值,a[i+2]变成了先前a[i+1]的值,等等。
break;}
a[i]=n; //再把n赋值给a[i],一个新的插入就此完成。
再说前面的那一段,这里是对初始化完毕的、已经含有若干元素的数组做选择排序——
for(j=i+1;j<10;j++)
if(q
if(p!=i)如果现在p中的值,不再等于i,则下标互换位置。--〉这其实就是把找到的最大的数放在i位置。i之前的数字已经按照从大到小的次序排列完毕。
{
s=a[i];
a[i]=a[p];
a[p]=s;
}
printf("%d ",a[i]);
}