返回首页

我宣布为int [1000000] [1000000],然后我得到的错误,因为数组的大小是太大
然后我只要chaged [1000000] [1000000],虽然得到同样的错误。
我怎样才能解决这个问题呢?
我的程序是

#include<stdio.h>  

#define size 100000           

  int main()

  {

  

 //int* a;

//a=(int *)malloc(1000);

  

  long a[size][size],c,d,n,i,j,q1=0,q2=0,q3=0,q4=0,will=1,b[20][20],k=0;

  char p;

  //printf("enter the number of co ordinate");

  scanf("%d",&n);

  for(i=0;i<n;i++)>

  for(j=0;j<2;j++)

  scanf("%d",&a[i][j]);

  void quadrant(int temp1,int temp2)

  {

                   

         if(temp1>=0&&temp2>=0)

        q1++;

      else if(temp1>=0&&temp2<=0)

        q2++;

      else if(temp1<0&&temp2<0)

        q3++;

      else if(temp1<=0&&temp2>=0)

         q4++;

 

   }

//printf("enter no of operations");

scanf("%d",&will);

                

while(will>0)

{

p=getchar();

scanf("%c",&p);

switch(p)

{

case 'x': 

                scanf("%d %d",&c,&d);

                  for(i=c-1;i<d;i++)>

                  a[i][1]=-(a[i][1]);break;

case 'y': 

                scanf("%d %d",&c,&d);

                for(i=c-1;i<d;i++)>

                a[i][0]=-(a[i][0]);break;

case 'c':       scanf("%d %d",&c,&d);

                for(i=0;i<=n-1;i++)

                {

                 int temp1,temp2;

                 temp1=a[i][0];

                 temp2=a[i][1];

              

                 quadrant(temp1,temp2);

                } 

               b[k][0]=q1;

               b[k][1]=q2 ;

               b[k][2]=q3;

               b[k][3]=q4; 

             

                  k=k+1; 

    q1=0;

    q2=0;

    q3=0;

    q4=0; 

                 

                  break;

case 'p':   printf(" the co-ordinates are:\n");

               for(i=0;i<n;i++)>

               {

                 for(j=0;j<2;j++)

                {

              printf("%d   ",a[i][j]);

                 }

                printf("\n");

                 } 

                 break;                               

     

default: printf("enter the correct choice\n");break;

}

if(will==1)

for(i=0;i<k;i++)>

{

printf("%d %d %d %d\n",b[i][0],b[i][1],b[i][2],b[i][3]);

}

will--;

}

}

</stdio.h>

回答

评论会员:SAKryukov 时间:2012/02/04
随机存取组织的文件中存储数据。保持打开的文件,定义了两个函数来存储和检索通过索引的整数。

mdash; SA的:查克・奥图尔
评论会员:游客 时间:2012/02/04
1)见我的回答您有关分割故障的其他问题。2)你真的要回去,并了解更多有关双维数组百万x1,000,0001,000,000,000,000(1万亿美元)的条目。"诠释"是4个字节美元=4TB的内存(不是很多系统将让你有一个程序,大imgsrc=http://www.orcode.com/img/ico/smiley_smile.gif)。当你改变它"长",现在你需要为每个项目的8个字节,加倍您的内存要求。1)你是不是在程序中使用的第二维超出[,0]和[1]那么为什么你认为你需要的其他999,998项beyone我。2),而这是可以存储1,000,000"整数"(所需的内存只有4MB),你可能要考虑比磁盘存储大量数据,并在"意见",而处理的文件和其他方式,在一个大的内存块3)由于这是明显的功课,问你的老师什么数据的现实大小应该是和,如果他/她建议100万项,找到了为什么他们认为这是合理的和谁会在所有该数据{S0的类型}