请帮我看下下面的程序,为什么会出现说内存不能为WRITTEN??
#include<stdio.h>#include<math.h>voiddft(floata[],floatb[],intn){floatc[100],d[100];i...
#include <stdio.h>#include <math.h>
void dft(float a[],float b[],int n)
{float c[100], d[100];
int i,k;
for(k=0;k<n;k++)
{float s=0,h=0;
for(i=0;i<n;i++)
{s=s+a[i]*cos(2*3.14*i*k/n);
h=h+b[i]*sin(2*3.14*i*k/n);}
c[k]=s;
d[k]=h;
}
for(i=0;i<n;i++)
{a[i]=c[i];
b[i]=d[i];
}
return ;
}
void main()
{float a[100],b[100];
int i,n;
printf("input N:");
scanf("%d",&n);
printf("input a[]:");
for(i=0;i<n;i++)
scanf("%f",a[i]);
printf("input b[]:");
for(i=0;i<n;i++)
scanf("%f",b[i]);
dft(a,b,n);
printf("DFT: i = 实部 + 虚部 :") ;
printf("\n");
for (i=0;i<n;i++)
{
printf("%6d%10.2f%10.2f%",i,a[i],b[i]);
printf("\n"); }
} 展开
void dft(float a[],float b[],int n)
{float c[100], d[100];
int i,k;
for(k=0;k<n;k++)
{float s=0,h=0;
for(i=0;i<n;i++)
{s=s+a[i]*cos(2*3.14*i*k/n);
h=h+b[i]*sin(2*3.14*i*k/n);}
c[k]=s;
d[k]=h;
}
for(i=0;i<n;i++)
{a[i]=c[i];
b[i]=d[i];
}
return ;
}
void main()
{float a[100],b[100];
int i,n;
printf("input N:");
scanf("%d",&n);
printf("input a[]:");
for(i=0;i<n;i++)
scanf("%f",a[i]);
printf("input b[]:");
for(i=0;i<n;i++)
scanf("%f",b[i]);
dft(a,b,n);
printf("DFT: i = 实部 + 虚部 :") ;
printf("\n");
for (i=0;i<n;i++)
{
printf("%6d%10.2f%10.2f%",i,a[i],b[i]);
printf("\n"); }
} 展开
1个回答
2012-11-29
展开全部
scanf("%f",a[i]);改为scanf("%f",&a[i]);
scanf("%f",b[i]);改为scanf("%f",&b[i]);
scanf("%f",b[i]);改为scanf("%f",&b[i]);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询