4.8. :   _____________________123

{

int i , j ;

double max = m.base[0][0];

for (i = 0; i < m.column_size; ++i)
for (j = 0; j < m.row_size; ++j)
if (m.base[i][j] > max)
max = m. ba s e [ i ] [ j ] ;

return (max) ;

}

      main   f ind_max () -
      :

ttinclude <iostream.h>

int main()
{

twod a, b;

int i , j ;

allocate(2, 3, a) ;

allocate(4, 6, b) ;

for (i =0; i < a.column_size; ++i)
for (j = 0; j < a.row_size; ++j)
a.base[i][j] = i * j ;

for (i =0; i < b. column_size; ++i)
for (j = 0; j < b.row_size; ++j)
b.base[i][j] = i * j ;

cout  find_max(a)  "    2 * 3\n";

cout  find_max(b)  "    4 * 6\n";

}

  array_2d

 struct twod {

double** base;

int row_size, column_size;

};

     twod.    
   base.   row_size  column_size  
   .

 void allocate(int r, int s, twod& m)
{

m.base = new double*[s];

for (int i = 0; i < s; ++i)
m.base[i] = new double[r];