#include <stdio.h>
#include <math.h>
typedef struct {
double x;
double y;
} Point;
/* X座標とY座標を入力してPoint型の変数を返す */
Point scan_point(void)
{
Point p;
return p;
}
/* 長方形の面積を計算する */
double area_of(Point p1, Point p2)
{
double width;
double height;
width
= fabs(p2.
x - p1.
x); height
= fabs(p2.
y - p1.
y);
return width * height;
}
/* 長方形の周囲の長さを計算する */
double circumference_of(Point p1, Point p2)
{
double width;
double height;
width
= fabs(p2.
x - p1.
x); height
= fabs(p2.
y - p1.
y);
return 2.0 * (width + height);
}
int main(void)
{
Point p1, p2;
double area, circumference;
p1 = scan_point();
p2 = scan_point();
area = area_of(p1, p2);
circumference = circumference_of(p1, p2);
printf("\n面積 = %.2f\n", area
); printf("周囲の長さ = %.2f\n", circumference
);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxtYXRoLmg+Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBkb3VibGUgeDsKICAgIGRvdWJsZSB5Owp9IFBvaW50OwoKLyogWOW6p+aomeOBqFnluqfmqJnjgpLlhaXlipvjgZfjgaZQb2ludOWei+OBruWkieaVsOOCkui/lOOBmSAqLwpQb2ludCBzY2FuX3BvaW50KHZvaWQpCnsKICAgIFBvaW50IHA7CgogICAgcHJpbnRmKCJY5bqn5qiZ44KS5YWl5Yqb44GX44Gm44GP44Gg44GV44GEOiAiKTsKICAgIHNjYW5mKCIlbGYiLCAmcC54KTsKCiAgICBwcmludGYoIlnluqfmqJnjgpLlhaXlipvjgZfjgabjgY/jgaDjgZXjgYQ6ICIpOwogICAgc2NhbmYoIiVsZiIsICZwLnkpOwoKICAgIHJldHVybiBwOwp9CgovKiDplbfmlrnlvaLjga7pnaLnqY3jgpLoqIjnrpfjgZnjgosgKi8KZG91YmxlIGFyZWFfb2YoUG9pbnQgcDEsIFBvaW50IHAyKQp7CiAgICBkb3VibGUgd2lkdGg7CiAgICBkb3VibGUgaGVpZ2h0OwoKICAgIHdpZHRoID0gZmFicyhwMi54IC0gcDEueCk7CiAgICBoZWlnaHQgPSBmYWJzKHAyLnkgLSBwMS55KTsKCiAgICByZXR1cm4gd2lkdGggKiBoZWlnaHQ7Cn0KCi8qIOmVt+aWueW9ouOBruWRqOWbsuOBrumVt+OBleOCkuioiOeul+OBmeOCiyAqLwpkb3VibGUgY2lyY3VtZmVyZW5jZV9vZihQb2ludCBwMSwgUG9pbnQgcDIpCnsKICAgIGRvdWJsZSB3aWR0aDsKICAgIGRvdWJsZSBoZWlnaHQ7CgogICAgd2lkdGggPSBmYWJzKHAyLnggLSBwMS54KTsKICAgIGhlaWdodCA9IGZhYnMocDIueSAtIHAxLnkpOwoKICAgIHJldHVybiAyLjAgKiAod2lkdGggKyBoZWlnaHQpOwp9CgppbnQgbWFpbih2b2lkKQp7CiAgICBQb2ludCBwMSwgcDI7CiAgICBkb3VibGUgYXJlYSwgY2lyY3VtZmVyZW5jZTsKCiAgICBwcmludGYoIuW3puS4iumaheOBruW6p+aomeOCkuWFpeWKm+OBl+OBvuOBmeOAglxuIik7CiAgICBwMSA9IHNjYW5fcG9pbnQoKTsKCiAgICBwcmludGYoIlxu5Y+z5LiL6ZqF44Gu5bqn5qiZ44KS5YWl5Yqb44GX44G+44GZ44CCXG4iKTsKICAgIHAyID0gc2Nhbl9wb2ludCgpOwoKICAgIGFyZWEgPSBhcmVhX29mKHAxLCBwMik7CiAgICBjaXJjdW1mZXJlbmNlID0gY2lyY3VtZmVyZW5jZV9vZihwMSwgcDIpOwoKICAgIHByaW50ZigiXG7pnaLnqY0gPSAlLjJmXG4iLCBhcmVhKTsKICAgIHByaW50Zigi5ZGo5Zuy44Gu6ZW344GVID0gJS4yZlxuIiwgY2lyY3VtZmVyZW5jZSk7CgogICAgcmV0dXJuIDA7Cn0=