home *** CD-ROM | disk | FTP | other *** search
- /*
- C++ program that demonstrates structured types
- */
-
- #include <iostream.h>
- #include <stdio.h>
- #include <math.h>
-
- const MAX_RECT = 4;
-
- struct point {
- double x;
- double y;
- };
-
- struct rect {
- point ulc; // upper left corner
- point lrc; // lower right corner
- double area;
- int id;
- };
-
- typedef rect rectArr[MAX_RECT];
-
- main()
- {
- rectArr r;
- rect temp;
- double length, width;
-
- for (int i = 0; i < MAX_RECT; i++) {
- cout << "Enter (X,Y) coord. for ULC of rect. # "
- << i << " : ";
- cin >> r[i].ulc.x >> r[i].ulc.y;
- cout << "Enter (X,Y) coord. for LRC of rect. # "
- << i << " : ";
- cin >> r[i].lrc.x >> r[i].lrc.y;
- r[i].id = i;
- length = fabs(r[i].ulc.x - r[i].lrc.x);
- width = fabs(r[i].ulc.y - r[i].lrc.y);
- r[i].area = length * width;
- }
-
- // sort the rectanges by areas
- for (i = 0; i < (MAX_RECT - 1); i++)
- for (int j = i + 1; j < MAX_RECT; j++)
- if (r[i].area > r[j].area) {
- temp = r[i];
- r[i] = r[j];
- r[j] = temp;
- }
-
- // display rectangles sorted by area
- for (i = 0; i < MAX_RECT; i++)
- printf("Rect # %d has area %5.4lf\n", r[i].id, r[i].area);
- return 0;
- }
-