Я пишу программу для вычисления площади прямоугольника.
Eg.
Введите верхнюю левую точку: 1 1 (пользовательский ввод)
Введите нижнюю правую точку: 2 -1 (пользовательский ввод)
Верхний левый x = 1,000000 y: 1,000000
Нижний правый x = 2,000000 y: -1,000000 < br> Площадь = 2.000000 (выход программы)
Но мой:
Введите верхнюю левую точку: 1 1 (пользовательский ввод)
Введите нижнюю правую точку: 2 -1 (пользовательский ввод)
w: 1,000000
h: 2,000000
w*h: 2,000000
Прямоугольник Площадь: 1.000000 // Вот в чем проблема, вместо этого нужно вывести 2.000000.
.
typedef struct {
double x;
double y;
} Point;
typedef struct {
Point topLeft; /* top left point of rectangle */
Point botRight; /* bottom right point of rectangle */
} Rectangle;
Point p;
Rectangle r;
printf("Enter top left point : ");
scanf("%lf",&r.topLeft.x);
scanf("%lf",&r.topLeft.y);
fflush(stdin);
printf("Enter bottom right point : ");
scanf("%lf",&r.botRight.x);
scanf("%lf",&r.botRight.y);
computeArea(&r);
printf("Rectangle Area : %lf",r);
double computeArea(Rectangle *r)
{
double h=0,w=0,z=0;
w=fabs(r->topLeft.x - r->botRight.x);
printf("w : %lf\n",w);
h=fabs(r->botRight.y - r->topLeft.y);
printf("h : %lf\n",h);
z=w*h;
printf("w*h : %lf\n",z);
return (z);
}