关于网友提出的“ 也许属于for循环的问题”问题疑问,本网通过在网上对“ 也许属于for循环的问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 也许属于for循环的问题描述:
void CshuzixinhaoView::fft(float AR[], float AI[], int m, int n)
{
int i,i1,j1,j,LH,n1,k,b;
float tr,ti,p;
LH=(int)n/2;
j=LH;
n1=n-2;
for(i=1;j<=n1;i++)
{
if(i<>
{
i1=i;
j1=j;
tr=AR[i1];
ti=AI[i1];
AR[i1]=AR[j1];
AI[i1]=AI[j1];
AR[j1]=tr;
AI[j1]=ti;
}
k=LH;
while(j>=k)
{
j=j-k;
k=(int)k/2;
}
j=j+k;
}
for(i=1;i<=m;i++)
{
b=(int)pow(2.0,i-1);
for(j=0;j<=(b-1);j++)
{
p=(float)(pow(2.0,(m-i))*j*2.0*pi/(float)n);
for(k=j;k<=(n-1);)
{
//就是下边这两段,上边这段是对的,下边的不对,求教哪错了
/*
tr=AR[k+b]*cos(p)+AI[k+b]*sin(p);
ti=-AR[k+b]*sin(p)+AI[k+b]*cos(p);
AR[k+b]=AR[k]-tr;
AI[k+b]=AI[k]-ti;
AR[k]=AR[k]+tr;
AI[k]=AI[k]+ti;
*/
/*
tr=(AR[k]+AR[k+b]*cos(p)+AI[k+b]*sin(p));
ti=(AI[k]-AR[k+b]*sin(p)+AI[k+b]*cos(p));
AR[k+b]=(AR[k]-AR[k+b]*cos(p)-AI[k+b]*sin(p));
AI[k+b]=(AI[k]+AR[k+b]*sin(p)-AI[k+b]*cos(p));
AR[k]=tr;
AI[k]=ti;
*/
k+=b*2;
}
}
}
}