A23 Answer


#include <stdio.h>
#include <stdlib.h>

/* Puzzle A23 -- print a n by n square divided into quardrants of stars, 
dots, dollars, and ohs */

int main(int argc, char *argv[])
{
  int row, col;
  int n=15;
  
  for ( row=0; row<n; row++ )
  {
    for ( col=0; col<n; col++ )
    {
      if ( row<n/2 && col<n/2 )
        printf("*");
      else if ( row<n/2 )
        printf(".");
      else if ( col<n/2 )
        printf("$");
      else
        printf("o");
    }
    printf("\n");
  }
  
  printf("\n");
  system("PAUSE");	
  return 0;
}

Comments: The if structure determines which quadrant the current row and col belong in, then prints the appropriate character.

When n is odd, it is unclear what to do. Two small squares will be larger than the other two. Probably this is OK. In a serious application you would have to think carefully.

Maybe, when n is odd, you could make all the small squares the same size but separate them with a space.