为何输出老是出错,求助!
我写一个程序,是处理信号变换的,有一个函数,目的是看给出的周期参数是否是2的N次方,如果不是,则延长周期为其后最近的2的N次方,且相关信号量为0。
比如,我将信号周期设为3,则我输入前三个信号量为1,2,1,则输出为1,2,1,0,自动变成周期4,也就是2的2次方,第四个信号量为0。但不知为什么程序老是出错,补上的信号应为0,可是运行发现是个很大的数,请高人指点。
#include "stdafx.h"
#include "math.h"
void FFT(float a[], int M)
{
int MM;
for(int i=0;i<1000000;i++)
{
if((double)M>pow(2,(double)i))
;
else
{
MM=(int)pow(2,(double)i);
break;
}
}
for(int i=M+1;i<MM;i++)
{
a[i]=0;
}
for(int i=0;i<MM;i++)
{
printf("a[%d] = %f\n",i,a[i]);
}
}
int _tmain(int argc, _TCHAR* argv[])
{
float x[100];
int N;
printf("请输入信号的周期:\n");
scanf("%d",&N);
for(int i=0;i<N;i++)
{
printf("请输入第%d个数:\n",i+1);
scanf("%f",&x[i]);
}
printf("输入序列为:\n");
FFT(x,N);
return 0;
}