小弟我这个循环语句有什么有关问题呀,请大家帮忙

我这个循环语句有什么问题呀,请大家帮忙。
其它程序就不引了,问题出在这个循环语句中。

for(int   i=0;i <LM;i++)
{
if((i> j)||(i==j))
;
else
{
float   x   =   a[j];
a[j]   =   a[i];
a[i]   =   x;
}

b1[i]=a[i];
b2[i]=0;

printf( "x[%d]=%f\n ",i,b1[i]);//这句在循环内,运行后可以输出,


int   k   =   LMF;

while(k <(j+1))
{
j=j-k;
k=k/2;
}

j=j+k;

}

如果上面那句printf语句放在循环体内可以输出,但是如果我在循环体下面,写

for(int   i=0;i <LM;i++)
{
        printf( "b1[%d]=%f\n ",i,b1[i]);
}

结果却输出不了,而且这个循环体下面的所有语句运行后都执行不了,请教各位朋友,这是怎么回事?
谢谢!

------解决方案--------------------
死循环了
------解决方案--------------------
j和k最后都为0,死循环。