#include<stdio.h>
#include<stdlib.h>
int main()
{
int *p=NULL;
int n=0;
printf("请输入所排序数字的数量:\n");
scanf("%d",&n);
p=(int *)(malloc(sizeof(int)*n));
int i,j,k,l;
printf("输入数字:\n");
scanf("%d",&p[0]); //在p[0]处读入一个数字
for(i=1;i<n;i++) //在往后排列的p[i]中读入数字
{
int t=0;
scanf("%d",&t);
for(j=i-1;j>=0;j--) //使刚读入的数字与以前的数字进行比较进行插入排序
{
if(j>0)
{
if(t<=p[j] && t>=p[j-1])
{
for(k=i-1;k>=j;k--)
p[k+1]=p[k];
p[j]=t;
break;
}else if(t>p[j]){
p[j+1]=t;
break;
}
}else {
if(t<=p[j])
{
for(k=i-1;k>=0;k--)
p[k+1]=p[k];
p[j]=t;
break;
}else if(t>p[j]){
for(k=i-1;k>=0;k--)
p[k+1]=p[k];
p[j+1]=t;
break;
}
}
}
}
for(i=0;i<n;i++) //输出排列后的数组
printf(" %d ",p[i]);
free(p);
return 0;
}