请帮我看看这个折半插入排序出了什么问题??非常谢谢!!
#include<stdio.h>#include<malloc.h>
void main()
{
int*a;
int num,low=1,j,high,length=2,m;
a=(int *)malloc(100*sizeof(int));
a[0]=2;a[1]=6;
while(1)
{
scanf("%d",&num);
if(num==0)break;
low=1;high=length;
while(low<=high)
{
m=(low+high)/2;
if(a[m]>num) high=m-1;
else low=m+1;
}
for( j=length;j>=m;--j)a[j+1]=a[j];
a[m]=num;
length++;
printf("\n");
}
for(int i=0;i<length;i++)printf("%3d",a[i]);
}
/*(插入开头的先不考虑。还没完善好,先解决这个问题。。谢谢!)我想输入整数(以0结束),以插入的方式放到数组中,按大小排列。如输入2 3 8 4
则输出2 2 3 4 6 8*/