读书人

排序不知道哪错了,该怎么处理

发布时间: 2013-03-01 18:33:02 作者: rapoo

排序不知道哪错了

#include <stdio.h>

int main(void)
{
long array[5]={5,4,3,2,1};
int i,j,key;

for(i=1;i<5;i++)
{
key=array[i];
j=i-1;
while(j>=0 && array[j]>key)
{
array[j+1]=array[j];
j--;
}
array[j]=key;

}
for(i=0;i<5;i++)
printf("%d",array[i]);
}

[解决办法]
将array[j]=key;放到while循环里面去,修改之后:

long array[5]={5,4,3,2,1};
int i,j,key;

for(i=1;i<5;i++)
{
key=array[i];
j=i-1;
while(j>=0 && array[j]>key)
{
array[j+1]=array[j];
array[j]=key;
j--;
}
}
for(i=0;i<5;i++)
printf("%d",array[i]);

读书人网 >C语言

热点推荐