Source of twodima1.cpp


  1: // Filename: TWODIMA1.CPP
  2: // Purpose:  Illustrates declaration, initialization and
  3: //           processing of a two-dimensional array.

  5: #include <iostream>
  6: #include <iomanip>
  7: using namespace std;

  9: int main()
 10: {
 11:     cout << "\nThis program illustrates a two-dimensional array."
 12:          << "\nStudy the source code and the output simultaneously.\n\n";

 14:     // Declare *and* initialize a two-dimensional array
 15:     const NUM_ROWS = 3;
 16:     const NUM_COLS = 5;
 17:     int a[NUM_ROWS][NUM_COLS] = 
 18:         { {  2,  4,  6,  8, 10 },
 19:           { -1, -2 }, // Remaining values in 2nd row will be 0.
 20:           {  1,  3,  5,  7,  9 }
 21:         };

 23:     int row, col;  // For use as row and column indices

 25:     // Display all values in the array:
 26:     cout << endl;
 27:     for (row = 0; row < NUM_ROWS; row++)
 28:     {
 29:         for (col = 0; col < NUM_COLS; col++)
 30:             cout << setw(4) << a[row][col];
 31:         cout << endl;
 32:     }

 34:     const int SIZE = 3;
 35:     int b[SIZE][SIZE];

 37:     // Initialize a two-dimensional array with nested for loops:
 38:     for (row = 0; row < SIZE; row++)
 39:         for (col = 0; col < SIZE; col++)
 40:             b[row][col] = row + col;  // Just some value

 42:     // Display all values in the array again:
 43:     cout << endl;
 44:     for (row = 0; row < SIZE; row++)
 45:     {
 46:         for (col = 0; col < SIZE; col++)
 47:             cout << setw(4) << b[row][col];
 48:         cout << endl;
 49:     }

 51:     // Display values in 2nd row, followed by 3rd columns:
 52:     cout << endl;
 53:     for (col = 0; col < SIZE; col++)
 54:         cout << setw(4) << b[1][col];
 55:     cout << endl;
 56:     for (row = 0; row < SIZE; row++)
 57:         cout << setw(4) << b[row][2];
 58:     cout << endl;

 60:     // Display values on main diagonal:
 61:     for (row = 0; row < SIZE; row++)
 62:         cout << setw(4) << b[row][row];
 63:     cout << endl;

 65:     // Display values on minor diagonal:
 66:     for (row = SIZE-1; row >= 0; row--)
 67:         cout << setw(4) << b[row][SIZE-1 - row];
 68:     cout << endl << endl;

 70:     return 0;
 71: }