A39 Answer


#include <stdio.h>

void center(char left, char cent, char right, int count, int length)
{
  int blanks = length-count;
  int j;
  
  for ( j=0; j<blanks/2; j++ ) putchar( ' ' );
  for ( j=0; j<count/2;  j++ ) putchar( left );
  putchar( cent );
  for ( j=0; j<count/2;  j++ ) putchar( right );
  
  putchar( '\n');
}

void shaggyTruncTriangle(char left, char cent, char right, int base, int top, int line)
{
  int j;
  
  for ( j=top; j<=base; j+=2 )
  {
    center( left, cent, right, j, line );
  }  
}

void pineTree( int tiers )
{
  int t;
  int line = tiers*2+1;
  
  shaggyTruncTriangle( '/', '|', '\\', 3, 1, line );
  
  for ( t=3; t<=tiers; t++ )
  {
    int base = t*2+1;
    int top  = (t-1)*2 - 1;
    shaggyTruncTriangle( '/', '|', '\\', base, top, line );
  } 
  
  for ( t=0; t<3; t++ )
    center( '|', '|', '|', 3, line );  
}
  
int main(int argc, char *argv[])
{
  pineTree(8);  
  
  system("PAUSE");	
  return 0;
}

Comments: