用下面的数据类型分别表示点和矩形:
struct POINT { //点
int x, y; //坐标值x和y
};
struct RECT { //矩形
POINT lt, rb; //矩形的左上角和右下角
};
有一个矩形,矩形的边分别和x,y轴平行,输入矩形两个点的坐标值x和y,编写函数求矩形面积。不考虑溢出之类的特殊情况。
输入格式:输入整型,空格分隔。每行一个点的坐标。
输出格式:输出整型
输入:-20 20
20 -10
输出:1200
思路:定义的结构体RECT是代表矩形,有两个成员,分别是2个POINT结构体(代表点的结构体),成员是2个int型变量代表的x,y坐标。
那么,S=| RECT型变量的lt成员的x成员 - RECT型变量的rb成员的x成员 | * | RECT型变量的lt成员的y成员 - RECT型变量的rb成员的y成员 |
代码:
#include<stdio.h>
#include<stdlib.h>
struct POINT{//点
int x,y;//坐标值x和y
};
struct RECT{//矩形
struct POINT lt,rb;//矩形的左上角和右下角
};
int main()
{
struct RECT a;
int s1,s2;
scanf("%d%d%d%d",&a.lt.x,&a.lt.y,&a.rb.x,&a.rb.y);
s1=abs(a.lt.x-a.rb.x);
s2=abs(a.lt.y-a.rb.y);
printf("%d",s1*s2);
return 0;
}
Tip:
scanf接收不但忽略空格还忽略回车,但是在有逗号的情况下必须遵循一定的格式,否则出错。
结果: