home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
C Programming Starter Kit 2.0
/
SamsPublishing-CProgrammingStarterKit-v2.0-Win31.iso
/
tybc4
/
ptr4.cpp
< prev
next >
Wrap
C/C++ Source or Header
|
1993-03-27
|
2KB
|
64 lines
/*
C++ program that demonstrates pointers to 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;
rect* pr = r;
rect* pr2;
double length, width;
for (int i = 0; i < MAX_RECT; i++, pr++) {
cout << "Enter (X,Y) coord. for ULC of rect. # "
<< i << " : ";
cin >> pr->ulc.x >> pr->ulc.y;
cout << "Enter (X,Y) coord. for LRC of rect. # "
<< i << " : ";
cin >> pr->lrc.x >> pr->lrc.y;
pr->id = i;
length = fabs(pr->ulc.x - pr->lrc.x);
width = fabs(pr->ulc.y - pr->lrc.y);
pr->area = length * width;
}
pr -= MAX_RECT; // reset pointer
// sort the rectanges by areas
for (i = 0; i < (MAX_RECT - 1); i++, pr++) {
pr2 = pr + 1; // reset pointer pr2
for (int j = i + 1; j < MAX_RECT; j++, pr2++)
if (pr->area > pr2->area) {
temp = *pr;
*pr = *pr2;
*pr2 = temp;
}
}
pr -= MAX_RECT - 1; // reset pointer
// display rectangles sorted by area
for (i = 0; i < MAX_RECT; i++, pr++)
printf("Rect # %d has area %5.4lf\n", pr->id, pr->area);
return 0;
}