Тема: Допоможіть з С
Прога не закінчена, але з основою заплуталась,що не так? Ось завдання:
З клавіатури ввести послідовність структур, кожна з яких задає координати двох протилежних (лівої верхньої і правої нижньої) вершин прямокутника, сторони якого паралельні до осей координат. Роздрукувати введені дані у вигляді таблиці, відсортувавши їх за зростанням лівої координати x прямокутника. Визначити й вказати прямокутники з найбільшою і найменшою площею.
#include <stdio.h>
#include <stdlib.h>
struct pryamoug
{
    int x;
    int y;
};
struct pryamoug A,B,C,D;
struct pryamoug p[7]={ {A.x,A.y},{B.x,B.y}, {C.x,C.y}, {D.x,D.y} };
int main (void)
{
    int sort (struct pryamoug p[7]);
    void show(struct pryamoug p[7]);
        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");
            system("PAUSE");
        }
    B.x=D.x;
    B.y=A.y;
    C.x=A.x;
    C.y=D.y;
    sort(p[7]);
    show(p[7]);
    return 0;
}
int sort(struct pryamoug p[7])
{
    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[7])
{
    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[7];i++)
    {
        printf("\t|    %i    |    %i    |    %i     |    %i    |    %i    |    %i    |    %i    |    %i    |    %i",
                  p[i]);
    }
}