#include<bits/stdc++.h>
using namespace std;
int n,m,x1,len1,x2,y2,len2;
int y1;
int v[805][805];
bool f[805][805];//是否算过
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>v[i][j];
int q;
cin>>q;
while(q--)
{
cin>>x1>>y1>>len1>>x2>>y2>>len2;
memset(f,0,sizeof(f));
long long sum=0;
for(int i=x1;i<=x1+len1-1;i++)
for(int j=y1;j<=y1+len1-1;j++)
{
f[i][j]++;
sum += v[i][j];
// cout<<sum<<endl;
}
for(int i=x2;i<=x2+len2-1;i++)
for(int j=y2;j<=y2+len2-1;j++)
{
if(!f[i][j])
sum += v[i][j];
}
cout<<sum<<endl;
}
return 0;
}
上面是编译过不了的代码
#include<bits/stdc++.h>
using namespace std;
int n,m,x1,len1,x2,y2,len2;
// int y1;
int v[805][805];
bool f[805][805];//是否算过
int main()
{
int y1;
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>v[i][j];
int q;
cin>>q;
while(q--)
{
cin>>x1>>y1>>len1>>x2>>y2>>len2;
memset(f,0,sizeof(f));
long long sum=0;
for(int i=x1;i<=x1+len1-1;i++)
for(int j=y1;j<=y1+len1-1;j++)
{
f[i][j]++;
sum += v[i][j];
// cout<<sum<<endl;
}
for(int i=x2;i<=x2+len2-1;i++)
for(int j=y2;j<=y2+len2-1;j++)
{
if(!f[i][j])
sum += v[i][j];
}
cout<<sum<<endl;
}
return 0;
}
把y1放到主函数里就能编译过了