C语言傅里叶级数an,bn程序,输入33个参数后程序输出结果乱码
以下为程序:#define pi 3.1416
#include <stdio.h>
#include <math.h>
void main()
{
double san(float f1[],double nw,float t,float h);
double sbn(float f1[],double nw,float t,float h);
float l=8;
float t=2;
float h=0.25;
double AB[17][2];
float f[16];
double w,nw,AN,BN;
int i,n;
w=2*pi/l;
for(i=0;i<=32;i++)
scanf("%f",&f[i]);
for(n=0;n<=16;n++)
{
nw=n*w;
AN=(2/l)*san(f,nw,t,h);
BN=(2/l)*sbn(f,nw,t,h);
AB[n][0]=AN;
AB[n][1]=BN;
}
printf("\nn= an= bn= \n");
for(n=0;n<=16;n++)
printf("%4d%7.3f%7.3f\n",n,AB[n][0],AB[n][1]);
}
double san(float f1[],double nw,float t,float h)
{
double T1;
double co[33];
int i;
for(i=1;i<=32;i++)
{co[i]=cos(nw*t);
t=t+h;
}
for(i=1;i<=32;i++)
T1=T1+h/2*(f1[i-1]*co[i-1]+f1[i]*co[i]);
return(T1);
}
double sbn(float f1[],double nw,float t,float h)
{
double T2;
double si[33];
int i;
for(i=0;i<=32;i++)
{si[i]=sin(nw*t);
t=t+h;
}
for(i=1;i<=32;i++)
T2=T2+h/2*(f1[i-1]*si[i-1]+f1[i]*si[i]);
return(T2);
}