排序不知道哪错了#include stdio.hint main(void){long array[5]{5,4,3,2,1}int i,j,keyfor(i1i5
排序不知道哪错了
#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]);
