Two Dimensional (Multiple-Subscripted) Arrays in C - Chapter 6: 6.9


Example 1:
#include < stdio.h >

/* constants */
#define ROW 2 /* number of rows */
#define COL 3 /* number of columns */

int main ( ){


}

Example 2:
#include < stdio.h >

/* constants */
#define ROW 3 /* number of rows */
#define COL 2 /* number of columns */

int main ( ){


}


Example 3:
#include < stdio.h >

/* constants */
#define ROW 2 /* number of rows */
#define COL 3 /* number of columns */

int main ( ){


    /* declaration and initialization of the array A of 2 rows and 3 colums */
    int A [ ROW ][ COL] = {{2, 3, 5}, {1, 4, 5}};
    int i; /* row counter */
    int j; /* column counter */
    sum = 0;

    /* find sum of the array elements */
    for (i = 0; i < ROW; i++){

      for (j = 0; j < COL; j++){
        sum += A [ i ][ j ] );

      }
      printf("\n");

    }
    printf("The sum of the elements is %d\n", sum);
    return 0;

}


Example 4 - Two Dimensional Array and Funtions


Example 3:
#include < stdio.h >

/* constants */
#define ROW 2 /* number of rows */
#define COL 3 /* number of columns */
/* function prototypes */
void read_array(int A[ ][COL], int num_row, int num_col);
void print_array(int A[ ][COL], int num_row, int num_col);
int min(int A[ ][COL], int num_row, int num_col);
double average (int A[ ][COL], int num_row, int num_col);
int min(

int main ( ){


    /* array declaration */
    int A [ ROW ][ COL];
    read_array (A, ROW, COL);
    print_array(A, ROW, COL);
    printf("The minimum among the elements in the given array is %d\n", min(A, ROW, COL));
    printf("The average of the elements in the given array is %f\n", average(A, ROW, COL));
    return 0;

}
void read_array(int A[ ][COL], int num_row, int num_col){

    int i; /* row counter */
    int j; /* column counter */

    for (i = 0; i < num_row; i++){
      for (j = 0; j < num_col; j++){
        scanf("%d", &A[i][j]);

      }

    }

}


void print_array(int A[ ][COL], int num_row, int num_col){

    int i; /* row counter */
    int j; /* column counter */

    for (i = 0; i < num_row; i++){
      for (j = 0; j < num_col; j++){
        printf("%d", A[i][j]);

      }
      printf("\n");

    }

}

int min(int A[ ][COL], int num_row, int num_col){

    int i; /* row counter */
    int j; /* column counter */
    int min = A[0][0];

    for (i = 0; i < num_row; i++){
      for (j = 0; j < num_col; j++){
        if (min > A[i][j])
          min = A[i][j]

        }

      }
      return min;

    }


    double average (int A[ ][COL], int num_row, int num_col);

      int i; /* row counter */
      int j; /* column counter */
      int sum = 0;

      for (i = 0; i < num_row; i++){
        for (j = 0; j < num_col; j++){
          sum += A[ i ][ j ]

        }

      }
      return (double) sum /( num_col * num_row );

    }