home *** CD-ROM | disk | FTP | other *** search
/ C Programming Starter Kit 2.0 / SamsPublishing-CProgrammingStarterKit-v2.0-Win31.iso / tybc4 / struct1.cpp < prev    next >
C/C++ Source or Header  |  1993-03-27  |  1KB  |  58 lines

  1. /*
  2.   C++ program that demonstrates structured types
  3. */
  4.  
  5. #include <iostream.h>
  6. #include <stdio.h>
  7. #include <math.h> 
  8.  
  9. const MAX_RECT = 4;
  10.  
  11. struct point {
  12.   double x;
  13.   double y;
  14. };
  15.  
  16. struct rect {
  17.   point ulc; // upper left corner
  18.   point lrc; // lower right corner
  19.   double area;
  20.   int id;
  21. };                  
  22.  
  23. typedef rect rectArr[MAX_RECT];
  24.  
  25. main()
  26. {
  27.   rectArr r;          
  28.   rect temp;
  29.   double length, width;
  30.   
  31.   for (int i = 0; i < MAX_RECT; i++) {
  32.     cout << "Enter (X,Y) coord. for ULC of rect. # " 
  33.          << i << " : ";
  34.     cin >> r[i].ulc.x >> r[i].ulc.y;
  35.     cout << "Enter (X,Y) coord. for LRC of rect. # " 
  36.          << i << " : ";                 
  37.     cin >> r[i].lrc.x >> r[i].lrc.y;         
  38.     r[i].id = i;
  39.     length = fabs(r[i].ulc.x - r[i].lrc.x);
  40.     width = fabs(r[i].ulc.y - r[i].lrc.y);
  41.     r[i].area = length * width;
  42.   }                       
  43.   
  44.   // sort the rectanges by areas
  45.   for (i = 0; i < (MAX_RECT - 1); i++)
  46.     for (int j = i + 1; j < MAX_RECT; j++)
  47.       if (r[i].area > r[j].area) {
  48.         temp = r[i];
  49.         r[i] = r[j];
  50.         r[j] = temp;
  51.       }
  52.   
  53.   // display rectangles sorted by area
  54.   for (i = 0; i < MAX_RECT; i++) 
  55.     printf("Rect # %d has area %5.4lf\n", r[i].id, r[i].area);
  56.   return 0;
  57. }
  58.