思路分析:
输入:采用for循环依次输入x1,y1,x2,y2
解答:设置一个bool二元数组,初始将所有的值置为false,即代表这个false的单元面积还没有被遍历到,还没有加上它。然后依据两层嵌套循环依次遍历,遍历一个单元面积,执行语句sum++,并且将arr[i][j]的值改为true,表示已经加过此单位面积,防止后续遍历时重复相加。
代码如下:
#include<bits/stdc++.h>
using namespace std;
int n;
bool arr[101][101];
int main()
{
cin>>n;
int sum=0;
int x1,y1,x2,y2;
memset(arr,false,sizeof(arr));//将arr数组中的所有值置为false
for(int k=0;k<n;k++){
cin>>x1>>y1>>x2>>y2;
for(int i=x1;i<x2;i++){
for(int j=y1;j<y2;j++){
if(arr[i][j]==false){
sum++;
arr[i][j]=true ;
}
}
}
}
cout<<sum;
return 0;
}