G16 Answer


#include <stdio.h>

/* declare the Point type */
typedef struct
{
  int x, y;
} Point;

/* declare the Color type */
typedef struct
{
  int red, green, blue;
} Color;

/* declare the Triangle type */
typedef struct
{
  Point p0, p1, p2;
  Color color;
} Triangle;

/* function to print a Color */
void printColor( Color *c )
{
  printf("%3d red, %3d grn, %3d blu", c->red, c->green, c->blue );
}

/* function to construct a Color */
void setColor( Color *c, int r, int g, int b )
{
  if ( r<0 || r>255 ) r = 0;
  if ( g<0 || g>255 ) g = 0;
  if ( b<0 || b>255 ) b = 0;

  c->red   = r;
  c->green = g;
  c->blue  = b;
}

/* function to print a Point */
void printPoint( Point *p )
{
  printf("(%d, %d) ", p->x, p->y );
}

/* function to print a Triangle */
void printTriangle( Triangle *t )
{
  printf("Points: ");
  printPoint( &t->p0 ); printPoint( &t->p1 ); printPoint( &t->p2 );
  printf("\nColor: ");
  printColor( &t->color );
  printf("\n");
}

int main(int argc, char *argv[])
{
  /* declare and initialize three Points and a Color */
  Point p0={-32,77}, p1={345, 490}, p2={140, 389};
  Color c={230, 120, 54};

  /* declare and initialize a Triangle */
  Triangle tri = {p0, p1, p2, c};

  /* print the Triangle */
  printTriangle( &tri);

  system("pause");
  return 0;
}

Comments: