首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2013-03-01 
排序不知道哪错了#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]);

热点排行