続き
int main(){
List head;
List *lp = &head;
int d1,d2,d3,d4,height,width,i=1;
char buf[80];
while(1){
printf("長方形の対角の二点を入力してください(x1 y1 x2 y2) :");
if(fgets(buf,80,stdin)==NULL)break;
if(sscanf(buf,"%d %d %d %d\n",&d1,&d2,&d3,&d4)!=4){
printf("入力に誤りがあります.\n");
continue;
}
lp->next = init(d1,d2,d3,d4);
lp = lp->next;}
lp = head.next;
while(lp!=NULL){
printf("%d:(%d %d),(%d %d),(%d %d),(%d,%d)",i++,lp->x1,lp->y1,lp->x2,lp->y1,lp->x1,lp->y2,lp->x2,lp->y2);
height = (lp->y2 > lp->y1)? lp->y2-lp->y1 : lp->y1-lp->y2;
width = (lp->x2 > lp->x1)? lp->x2-lp->x1 : lp->x1-lp->x2;
printf(" 面積=%d\n",height*width);
lp=lp->next;}
release(head.next);
return 0;
}

入力ループはCtrl-Zで打ち切る
なんかheadの指定方法が変だな
Cでこういうのやるとオブジェクトの良さがわかる