本文介绍了我想要可以存储1000000整数的2D数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我声明为int a[1000000][1000000];
,然后我得到的错误为array size is too large
.
然后我遇到了同样的错误,却追上了long a[1000000][1000000]
.
我该如何解决这个问题?
我的程序是
I declared as int a[1000000][1000000];
Then I am getting error as array size is too large
.
Then I chaged as long a[1000000][1000000]
, though getting same error.
How can I solve this problem?
my program is
#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>
推荐答案
这篇关于我想要可以存储1000000整数的2D数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!