С клавиатуры ввести последовательность структур, каждая из которых задает координаты двух противоположных (левой верхней и правой нижней) вершин прямоугольника, стороны которого параллельны осям координат. Распечатать введенные данные в виде таблицы, отсортировав их по возрастанию левой координаты x прямоугольника. Определить и указать прямоугольники с наибольшей и наименьшей площадью.
Код: Выделить всё
#include <stdio.h>
#include <stdlib.h>
struct pryamoug
{
int x;
int y;
};
struct pryamoug A,B,C,D;
struct pryamoug p[8]={ {A.x,A.y},{B.x,B.y}, {C.x,C.y}, {D.x,D.y} };
int main (void)
{
int sort (struct pryamoug p[8]);
printf("Enter koord tochky A, D");
scanf("%i %i %i %i",&A.x,&A.y,&D.x,&D.y);
if(A.x>=D.x || A.y<=D.y)
{
printf("Nevirni dani, povtorit vvedennya");
}
B.x=D.x;
B.y=A.y;
C.x=A.x;
C.y=D.y;
sort(p[8]);
return 0;
}
int sort(struct pryamoug p[8])
{
int i,j,temp,n=7;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(p[i]>p[j])
{
temp=p[i];
p[i]=p[j];
p[j]=temp;
}
}
void show(struct pryamoug p[8])
{
int i;
printf("\n\t===========================================\n");
printf("\t | A.x | A.y | B.x | B.y | C.x | C.y | D.x | D.y");
for(i=0;i<p[8];i++)
{
printf("\t| %i | %i | %i | %i | %i | %i | %i | %i | %i",
p[i]);
}
}