#include <stdio.h>
#include <math.h>
typedef struct {
double x;
double y;
} Point;
Point scan_point(void);
double area_of(Point p1, Point p2);
double circumference_of(Point p1, Point p2);
int main(void) {
Point p1, p2;
printf("左上隅と右下隅の座標を入力してください。\n"); p1 = scan_point();
p2 = scan_point();
printf("座標1 : (%.2f, %.2f)\n", p1.
x, p1.
y); printf("座標2 : (%.2f, %.2f)\n", p2.
x, p2.
y); printf("面積 : %.2f\n", area_of
(p1
, p2
)); printf("周囲の長さ : %.2f\n", circumference_of
(p1
, p2
));
return 0;
}
Point scan_point(void) {
Point temp;
scanf("%lf %lf", &temp.
x, &temp.
y); return temp;
}
double area_of(Point p1, Point p2){
double yoko
= fabs(p1.
x - p2.
x); double tate
= fabs(p1.
y - p2.
y); return yoko * tate;
}
double circumference_of(Point p1, Point p2) {
double yoko
= fabs(p1.
x - p2.
x); double tate
= fabs(p1.
y - p2.
y); return 2.0 * (tate + yoko);
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxtYXRoLmg+CnR5cGVkZWYgc3RydWN0IHsKICAgIGRvdWJsZSB4OwogICAgZG91YmxlIHk7Cn0gUG9pbnQ7CgpQb2ludCBzY2FuX3BvaW50KHZvaWQpOwpkb3VibGUgYXJlYV9vZihQb2ludCBwMSwgUG9pbnQgcDIpOwpkb3VibGUgY2lyY3VtZmVyZW5jZV9vZihQb2ludCBwMSwgUG9pbnQgcDIpOwoKaW50IG1haW4odm9pZCkgewoJUG9pbnQgcDEsIHAyOwoJcHJpbnRmKCLlt6bkuIrpmoXjgajlj7PkuIvpmoXjga7luqfmqJnjgpLlhaXlipvjgZfjgabjgY/jgaDjgZXjgYTjgIJcbiIpOwoJcDEgPSBzY2FuX3BvaW50KCk7CglwMiA9IHNjYW5fcG9pbnQoKTsKCXByaW50Zigi5bqn5qiZMSA6ICglLjJmLCAlLjJmKVxuIiwgcDEueCwgcDEueSk7CiAgICBwcmludGYoIuW6p+aomTIgOiAoJS4yZiwgJS4yZilcbiIsIHAyLngsIHAyLnkpOwogICAgcHJpbnRmKCLpnaLnqY0gOiAlLjJmXG4iLCBhcmVhX29mKHAxLCBwMikpOwogICAgcHJpbnRmKCLlkajlm7Ljga7plbfjgZUgOiAlLjJmXG4iLCBjaXJjdW1mZXJlbmNlX29mKHAxLCBwMikpOwoKCQoJcmV0dXJuIDA7Cn0KCgpQb2ludCBzY2FuX3BvaW50KHZvaWQpIHsKCVBvaW50IHRlbXA7CiAgICBzY2FuZigiJWxmICVsZiIsICZ0ZW1wLngsICZ0ZW1wLnkpOwogICAgcmV0dXJuIHRlbXA7Cn0KCmRvdWJsZSBhcmVhX29mKFBvaW50IHAxLCBQb2ludCBwMil7Cglkb3VibGUgeW9rbyA9IGZhYnMocDEueCAtIHAyLngpOwoJZG91YmxlIHRhdGUgPSBmYWJzKHAxLnkgLSBwMi55KTsKCXJldHVybiB5b2tvICogdGF0ZTsKfQoKZG91YmxlIGNpcmN1bWZlcmVuY2Vfb2YoUG9pbnQgcDEsIFBvaW50IHAyKSB7CmRvdWJsZSB5b2tvID0gZmFicyhwMS54IC0gcDIueCk7CmRvdWJsZSB0YXRlID0gZmFicyhwMS55IC0gcDIueSk7CnJldHVybiAyLjAgKiAodGF0ZSArIHlva28pOwp9