c - 错误 "invalid types ' 浮点 [100][浮点 ]' for array subscript"

标签 c fft ifft

我已复制下面的整个代码并在我收到错误的行上发表了评论。

我正在尝试测试我在网上找到的 iDFT 算法,但无法编译它,当我尝试编译时,任何人都可以帮助我解决以下错误消息吗?

error: invalid types 'float [100][float]' for array subscript

#include <stdio.h>
#include <conio.h>
#include <math.h>

 int main()
 {
  float static X[100],X_Real[100],X_Imag[100];
  float k,n,N;

  printf("\t\t\t Inverse Discrete Fourier Transform(IDFT)"); 
  printf("\n\n Enter the length of DFT N=");
  scanf("%f",&N);
  printf("\n Enter the real and imaginary parts of X(k) as follows:\n\n"

 "X(k) =Real{X(k)} Img{X(k)} \n" );

  for(k=0;k<N;k++)
 {
  printf("X(%1.0f)=",k);                 
  scanf("%f %f",&X_Real[k],&X_Imag[k]);  // This is where I get the error
 }

 for(n=0;n<N;n++)
 {
  X[n]=0;
  for(k=0;k<N;k++)
  {
   X[n]=X[n]+X_Real[k]*cos((2*M_PI*k*n)/N)-X_Imag[k]*sin((2*M_PI*k*n)/N);
  }
  X[n]=X[n]/N;
 }

 printf("\n\n The sequence x(n) is as follows...");
 for(n=0;n<N;n++)
 {
  printf("\n\n X(%1.0f)=%3.6f",n,X[n]);
 }

 getch();
}

最佳答案

该错误准确地告诉您出了什么问题:k、n、N 必须声明为整数。您无法访问具有浮点索引的数组(该数组中的第 2.34 个值是多少)?

关于c - 错误 "invalid types ' 浮点 [100][浮点 ]' for array subscript",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43260860/

相关文章:

c - 将指针作为函数参数传递给指针

c - 为什么最后一个 read() 需要很长时间才能返回

python - python 中的 FFT 无法绘制正确的频率

java - 图像低通滤波器中的 "Echo"

python - 振幅和相位谱。改变相位,保持振幅不变

c - 开关/外壳问题

c - GStreamer 视频窗口未打开 (macOS)

用于信号处理的 Python 包

c - FFT 返回真实答案的共轭

fft - 计算导数傅立叶系数 Julia