在代码设计上有问题,没有考虑,当程序n满足最大值时,无论m到没到设定的最大值mm,程序中的ans都不会做++操作 同样 当m到达最大值时,无论n到没到设定的最大值nn,程序中的ans都不会做++操作,例如:按照你的输入,以(1,1)开始,在(2,4)内查找,当m=2时,n刚增加到3,还没有到最大值4,所以,导致程序出现问题。当然,修改之后,可能还会有问题,那应该是设计的问题,有卡片覆盖的问题,导致第二块板上的点,被覆盖。
纯手打的,不容易,望采纳!谢谢
附上代码:
include <iostream>
using namespace std;
bool a100;
void init()
{
int i,j;
for(i=0;i<100;i++)
for(j=0;j<100;j++)
a[i][j]=0;
}
int main()
{
int x,y,k,i,m,n,mm,nn,ans=1;//默认(0,0)一定在卡片内
cin>>x>>y>>k;
while(k--)
{
cin>>m>>n>>mm>>nn;
for(;m<=mm;m++)
{
for(;n<=nn;n++)
{
if(!a[m][n])
{
a[m][n]=1;
ans++;
}
}
if(!a[m][n])
{
a[m][n]=1;
ans++;
}
}
init();
}
return !printf("%d",ans);
}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…