小弟我这个循环语句有什么有关问题呀,请大家帮忙
我这个循环语句有什么问题呀,请大家帮忙。
其它程序就不引了,问题出在这个循环语句中。LM是程序里的一个输入的数,是2的N次幂,比如4,8,16,32等等,LMF是LM/2。
还请高年来帮助。
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,死循环。
其它程序就不引了,问题出在这个循环语句中。LM是程序里的一个输入的数,是2的N次幂,比如4,8,16,32等等,LMF是LM/2。
还请高年来帮助。
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,死循环。