| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 754 人关注过本帖
标题:求助数组问题
取消只看楼主 加入收藏
myphenix
Rank: 2
等 级:论坛游民
帖 子:33
专家分:23
注 册:2010-9-19
结帖率:75%
收藏
已结贴  问题点数:20 回复次数:3 
求助数组问题
我 在main 函数前用了一个宏定义
#define MAXROW 92800
后面定义了一个数组,a[MAXROW],结果运行时出错,请问是怎么回事?是因为数组越界了吗?谢谢!附我的整个程序
#include <stdio.h>
 #include <stdlib.h>
 #include <math.h>
 #define MAXROW1 927552
#define MAXROW2 625589
 #define MAXCOLUMN 200
 main()
 {
  int j=0,k=0;
  short plateid1[MAXROW1],plateid2[MAXROW2];
  short field1[MAXROW1],field2[MAXROW2];
  int mjd1[MAXROW1],mjd2[MAXROW2];
  double z2[MAXROW2],ra[MAXROW2],dec[MAXROW2],g[MAXROW2];
  float z1[MAXROW1],mediamass[MAXROW1],p97p5[MAXROW1],mode[MAXROW1],avg[MAXROW1];
  char line[MAXCOLUMN];
   FILE *infp1;
   FILE *infp2;
   FILE *outfp;
   outfp=fopen("/end","w");
   if ((infp2=fopen("/data2.txt","r"))==NULL)
   {
   printf("cannot open infile\n");
       return 1;
       }
   while ((fgets(line,MAXCOLUMN,infp2))!= NULL)
  {
       sscanf(line,"%hd %d %hd %lf %lf %lf %lf",&plateid2[j],&mjd2[j],&field2[j],&ra[j],&dec[j],&z2[j],&g[j]);
  // printf("%4d %6d %4d %12f %10.8f %20.16f %20.15f\n",plateid2[j],mjd2[j],field2[j],ra[j],dec[j],z2[j],g[j]);
       j++;

  }

   if ((infp1=fopen("/data1.txt","r"))==NULL)
      {
      printf("cannot open infile\n");
          return 1;
          }
      while ((fgets(line,MAXCOLUMN,infp1))!= NULL)
     {
          sscanf(line,"%hd %d %hd %f %f %f %f %f",&plateid1[k],&mjd1[k],&field1[k],&z1[k],&mediamass[k],&p97p5[k],&mode[k],&avg[k]);
    //  printf("%4d %6d %4d %e %e %e %e %e\n",plateid1[k],mjd1[k],field1[k],z1[k],mediamass[k],p97p5[k],mode[k],avg[k]);
          k++;

     }
      for (j=0;j<MAXROW2;j++)
      {

          for (k=0;k<MAXROW1;k++)
           {

             if (plateid2[j]==plateid1[k]&& mjd2[j]==mjd1[k]&& field2[j]==field1[k])

                   fprintf (outfp,"%4d %6d %4d %4d %6d %4d %e %e %e %e %e %12f %10.8f %20.16f %20.15f\n",plateid1[k],mjd1[k],field1[k],plateid2[j],mjd2[j],field2[j],z1[k],mediamass[k],p97p5[k],mode[k],avg[k],ra[j],dec[j],z2[j],g[j]);

            }
      }
 fclose(infp2);
 fclose(infp1);
 fclose(outfp);
   return 0;
 }

[ 本帖最后由 myphenix 于 2011-2-24 10:10 编辑 ]
搜索更多相关主题的帖子: 函数 include double 
2011-02-23 14:22
myphenix
Rank: 2
等 级:论坛游民
帖 子:33
专家分:23
注 册:2010-9-19
收藏
得分:0 
回复 7楼 qq1023569223
请问这是什么意思呢?
2011-02-24 09:43
myphenix
Rank: 2
等 级:论坛游民
帖 子:33
专家分:23
注 册:2010-9-19
收藏
得分:0 
回复 6楼 ansic
我运行的结果也是这样的,可是并没有解决我的问题呀,我是在linux下使用gcc编译的
2011-02-24 09:44
myphenix
Rank: 2
等 级:论坛游民
帖 子:33
专家分:23
注 册:2010-9-19
收藏
得分:0 
回复 2楼 huangapple
呵呵,谢谢指教,我的数据就这么大,调小了就不行罗
2011-02-24 09:44
快速回复:求助数组问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017036 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved