学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
发新话题
打印

刚学C,帮我看看这程序哪错了呀?

哦,这回终于明白了.

谢谢!

TOP

引用:
以下是引用 星魂 在 2008-5-13 20:47 的发言:

嗯,好了,
为什么中间不能用逗号那?

逗号不是间隔符吗?

逗号是字符数值?
这样:
附件: 您所在的用户组无法下载或查看附件

TOP

初学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

TOP

我运行的是正确的啊……

╟δ╩Σ╚δ╚?╕÷╩?╫╓a,b,c:1,6,8
╫ε┤≤╩?╬?:8
只是文字说明部分是乱码,我的tc好像不允许汉字

TOP

中间的逗号有两种作用,一种是做间隔,而另一种就是逗号表达式了;

TOP

编程一定要细心!

你输入数据的时候用","隔开,或是把输入语句改为:scanf("%d%d%d",&a,&b,&c);改了之后输入数据时要用空格隔开的.

TOP

应该输入逗号

TOP

呵呵没错没错

TOP

算法有点问题
而且在vc6.0中,头文件要#include<stdafx.h>
你求了最小数了.........

TOP

#include<stdafx.h>
?? 这是什么头文件
------...-.-..-...-----........-------.......----.....------....||- - !

TOP

发新话题