生手C++求问

新手C++求问
简单的一个冒泡排序,可是程序输出一直没有降序排列,求问是怎么回事。头文件省略。
int main()
{
    int i,j,temp,k;
    i=0;
    static int array[10]={10,9,8,7,6,5,4,3,2,1};
    for (j=10;j>1;j--)
    {
        while (i<j)
        {
            if (array[i]>array[i+1])
                temp=array[i];
                array[i]=array[i+1];
                array[i+1]=temp;
            i++;
        }
    }
    for (k=0;k<10;k++)
        cout<<array[k]<<" ";
    return 0;
}

------解决思路----------------------
for循环从j=9开始;while循环之后i从新置0;
------解决思路----------------------
if后面接大括号,养成良好的编码习惯,不然哪个企业敢要你?

 if (array[i]>array[i+1])
{
                temp=array[i];
                array[i]=array[i+1];
                array[i+1]=temp;
}

见http://www.afanihao.cn/c_guide/的附录“编码规范”