Answer 2D5

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

/* Puzzle D05 -- fill  an array with integers in ascending order */
#define COLS 7
#define ROWS 5

void print2DArray ( int nrows, int ncols, int x[nrows][ncols] )
{
  int r, c;
  for ( r=0; r<nrows; r++ )
  {
    for ( c=0; c<ncols; c++ )
      printf("%3d,", x[r][c] );
    printf("\n");
  }
}

void fill2DArray ( int nrows, int ncols, int x[nrows][ncols] )
{
  int r, c, val = 0;
  for ( r=0; r<nrows; r++ )
  {
    for ( c=0; c<ncols; c++ )
       x[r][c] = val++ ;
  }
}

int main()
{
  int x[ROWS][COLS] ;
  
  /* Fill the array with ascending integers */
  fill2DArray( ROWS, COLS, x );
      
  /* Print the array using our function */
  print2DArray( ROWS, COLS, x );
  
  printf("\n");
  return 0;
}

Here is a more convenient version (which may not compile on all compilers). Delete the pre-processor constants if you use this version.


int main()
{
  int ROWS, COLS;
  printf("rows: ");
  scanf("%d", &ROWS);
  printf("cols: ");
  scanf("%d", &COLS);
  int x[ROWS][COLS] ;
  
  /* Fill the array with ascending integers */
  fill2DArray( ROWS, COLS, x );
      
  /* Print the array using our function */
  print2DArray( ROWS, COLS, x );
  
  printf("\n");
  return 0;
}


Back to Puzzle Home