#include int main(void) { double ax, ay, bx, by; // prvi pravokotnik double ax2, ay2, bx2, by2; // drugi pravokotnik double o, pl; printf("Podatki o prvem pravokotniku\n"); printf("\tVnesi koordinati oglisca: "); scanf("%lf %lf", &ax, &ay); /* scanf lahko prebere tudi ve"c "stevil naenkrat. * Ko vna"samo "stevila, jih moramo lo"citi z vsaj * enim presledkom (lahko jih naredimo tudi ve"c). */ printf("\tVnesi koordinati nasprotnega oglisca: "); scanf("%lf %lf", &bx, &by); /* Naj bo (ax, ay) spodnje levo ogli"s"ce in * (bx, by) zgornje desno ogli"s"ce. */ if (ax > bx) { double t = ax; ax = bx; bx = t; } if (ay > by) { double t = ay; ay = by; by = t; } printf("Podatki o drugem pravokotniku\n"); printf("\tVnesi koordinati oglisca: "); scanf("%lf %lf", &ax2, &ay2); printf("\tVnesi koordinati nasprotnega oglisca: "); scanf("%lf %lf", &bx2, &by2); if (ax2 > bx2) { double t = ax2; ax2 = bx2; bx2 = t; } if (ay2 > by2) { double t = ay2; ay2 = by2; by2 = t; } o = 2.0*((bx-ax) + (by-ay) + (bx2-ax2) + (by2-ay2)); pl = (bx-ax)*(by-ay) + (bx2-ax2)*(by2-ay2); /* Od"stejemo plo"s"cino in obseg preseka, * "ce ta seveda obstaja. */ if (ax2<=bx && ay2<=by) { double axp, ayp, bxp, byp; axp = (ax > ax2) ? ax : ax2; ayp = (ay > ay2) ? ay : ay2; bxp = (bx < bx2) ? bx : bx2; byp = (by < by2) ? by : by2; o -= 2*((bxp-axp) + (byp-ayp)); pl -= (bxp-axp)*(byp-ayp); } printf("obseg = %g\n", o); printf("ploscina = %g\n", pl); return 0; }