// This example illustrates the use of a 3-D array in which calculations are performed on the array contents. // The program calculates column totals, row totals, and "page" totals. #include #include using namespace std; const int NumRows = 3; const int NumCols = 4; void printArray(int[][NumRows][NumCols], int); int sumRow(int[]); int sumCol(int[][NumCols], int whichCol); int sumPage(int[][NumCols]); int main() { const int NumPages = 2; int A[NumPages][NumRows][NumCols] = {{{1,2,3,4},{5,6,7,8},{9,10,11,12}},{{13,14,15,16},{17,18,19,20},{21,22,23,24}}}; printArray(A,NumPages); } void printArray(int array[][NumRows][NumCols], int pages) { for (int p = 0; p < pages; p++) { for (int r = 0; r < NumRows; r++) { for (int c = 0; c < NumCols; c++) { cout << setw(5) << array[p][r][c]; } cout << setw(8) << sumRow(array[p][r]) << endl; } cout << endl; for (int c = 0; c < NumCols; c++) cout << setw(5) << sumCol(array[p],c); cout << setw(8 ) << sumPage(array[p]) << endl << endl; } } int sumRow(int array[]) { int sum = 0; for (int c = 0; c < NumCols; c++) { sum += array[c]; } return sum; } int sumCol(int array[][NumCols], int whichCol) { int sum = 0; for (int r = 0; r < NumRows; r++) { sum += array[r][whichCol]; } return sum; } int sumPage(int array[][NumCols]) { int sum = 0; for (int r = 0; r < NumRows; r++) { for (int c = 0; c < NumCols; c++) sum += array[r][c]; } return sum; }