| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY 
共有 237 人关注过本帖
标题:关于程序运行的错误,求助!急
收藏  订阅  推荐  打印
编号89757
Rank: 1
等级:新手上路
帖子:4
积分:144
注册:2008-5-14
关于程序运行的错误,求助!急

初学vc++,运行程序遇到麻烦?
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define pi 3.1415926536
#define NN 2048
main()
{
int i,j,k,m,N,r,s,t;
static float a0,a1,b0,b1,p,z,g;
static int a[NN];
static float c[NN];
static float d[NN][2],w[NN][2];
char thl[15];
FILE *fp,*fp1;
a[0]=0;
a[1]=1;
printf("input the data sum N\n N=");   /*FFT采样点数,此处直接由一个数据文件读入*/
scanf("%d,&N");
printf("input the data r\n r=");                       /*FFT阶数和采样点数成2的N次方关系*/
scanf("%d",&r);
printf("input the power outfile name:");/*FFT变化后求得功率谱保存的文件名*/

scanf("%s",thl);
for(i=0;i<N;i++)
{
   a[2*i]=a[i]/2;
   a[2*i+1]=a[2*i]+N/2;
  }                  
g=0.0;
fp=fopen("sl.dat","r");
for(i=0;i<N;i++)
{
   fscanf(fp,"%f\n",&c[i]);              /*读入数据并完成位反处理*/
    d[a[i]][0]=c[i];
    d[i][1]=0;
    g=g+c[i];
  }                        
fclose(fp);
g=g/pow(2,r);
for(i=0;i<N;i++)
  {
   d[i][0]=d[i][0]-g;
   }                           
  for(i=0;i<N;i++)
  {
  for(m=0;m<pow(2,i);m++)
      {
       w[m][0]=(cos(2*pi*m/pow(2,i+1)));
         w[m][1]=(-sin(2*pi*m/pow(2,i+1)));
         }   
  for(j=0;j<N;j=j+pow(2,i+1))
      {
    for(k=0;k<pow(2,i);k++)
           {
         s=(j+k);
              t=(j+k+pow(2,i));   /*蝶形运算*/
                 a0=(d[s][0]+w[k][0]*d[t][0]-w[k][1]*d[t][1])/2;
                 a1=(d[s][1]+w[k][0]*d[t][1]+w[k][1]*d[t][0])/2;
                 b0=(d[s][0]-w[k][0]*d[t][0]+w[k][1]*d[t][1])/2;
                 b1=(d[s][1]-w[k][0]*d[t][1]-w[k][1]*d[t][0])/2;   
                d[s][0]=a0;
                d[s][1]=a1;
                d[t][0]=b0;
                d[t][1]=b1;
            }
       }
    }  
    fp=fopen(thl,"w");
    fp1=fopen("out2.dat","w");
    for(k=0;k<N;k++)
    {
      p=(pow(d[k][0],2)+pow(d[k][1],2));     /*计算功率谱*/
      z=sqrt(p);
      fprintf(fp1,"%f,%f\n",d[k][0],d[k][1]);
      fprintf(fp,"%f\n",z);
      }
    fclose(fp);
    fclose(fp1);
}
运行时蹦出个窗口unhandled exception in fft.exe:0xc0000005:Access Violation.
怎么解决?望高手指点……在下感激ing
搜索更多相关主题的帖子: float  static  FFT  
2008-5-14 11:52
zhuwei168
Rank: 2
来自:东软信息学院
等级:注册会员
帖子:180
积分:1914
注册:2008-2-13

Access Violation 翻译出来是访问违例
不太明白怎么弄
今天才刚学文件
2008-5-14 17:47
flyue
Rank: 6Rank: 6
等级:金牌会员
威望:6
帖子:1720
积分:17866
注册:2006-6-20

我在VC下运行没错啊

大家一起来编程吧!
2008-5-14 17:52
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.047629 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved