桌面窗体重叠

题目描述

一个windows桌面上的窗体用4个整数定义位置:左边坐标、右边坐标、下边坐标、上边坐标
现在,请输入2个窗体的位置信息,判断它们的位置是否重叠

输入

两行,每行一个窗体的位置信息,int 范围以内

 

输出

输出2个窗体的重叠面积,不重叠就输出0

样例输入

10 100 20 60
60 160 50 200

样例输出

400
#include<stdio.h>

struct win{
	int left;
	int right;
	int down;
	int up;
};

int max(int x,int y){
	int k;
	if(x>=y)k=x;
	else k=y;
	return k;
}
int min(int x,int y){
	int k;
	if(x<=y)k=x;
	else k=y;
	return k;
}

int main(){
	struct win w1,w2;
	int i,a,b,s;
	scanf("%d%d%d%d",&w1.left,&w1.right,&w1.down,&w1.up);
	scanf("%d%d%d%d",&w2.left,&w2.right,&w2.down,&w2.up);
	a=min(w1.right,w2.right)-max(w1.left,w2.left);
	b=min(w1.up,w2.up)-max(w1.down,w2.down);
	if(a<0||b<0)s=0;
	else s=a*b;
	printf("%d",s);
	return 0;
}
	

自我反思:这道题不是很绕,但关键是要会算窗体重叠的面积,而且还要考虑到两种边长为负的情况(代码中的a和b)。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值