_gege 发表于 2023-10-21 09:49

运行结果里y数组里的数值始终为0,没有变过,是什么原因呢

#include<math.h>

int x={0,10,20,30,40,50,40,30,20,10,0};

int h={50,50,50,50,50,50,50,50,50,50,50};

int y={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};

void main()

{

int M=11,N=11;

int n,m;

int w;

for(n=0;n<M+N-1;n++)

{ w=0;

for(m=0;m<M;m++)

{ if(((n-m)>=0)&&((n-m)<N))

w+=x*h;

}

y=w;

}

}

运行结果里y数组里的数值始终为0,没有变过,是什么原因呢?

laocuo1142 发表于 2023-11-16 15:21

首先,你需要考虑边界条件,即当n-m小于0或大于N时,应该如何处理。其次,你可能需要初始化w为1而不是0,因为在计算卷积时,通常的约定是第一个输入的长度为1。
页: [1]
查看完整版本: 运行结果里y数组里的数值始终为0,没有变过,是什么原因呢