08 Multidimensional Arrays
08 Multidimensional Arrays
Multidimensional
Arrays
1
Outline
• Introduction
• Declaring Two-Dimensional Arrays
• Processing Two-Dimensional Arrays
• Passing Two-Dimensional Arrays to
Functions
• Problem: Grading a Multiple-Choice
Test
• Multidimensional Arrays
2
Introduction
Data in a table or a matrix can be
represented using a two-dimensional
array.
3
Outline
• Introduction
• Declaring Two-Dimensional Arrays
• Processing Two-Dimensional Arrays
• Passing Two-Dimensional Arrays to
Functions
• Problem: Grading a Multiple-Choice
Test
• Multidimensional Arrays
4
Declaring Two-
Dimensional Arrays
elementType arrayName[ROW_SIZE]
[COLUMN_SIZE];
• Example
int distances[7][7];
• An element in a two-dimensional
array is accessed through a row and
column index.
int bostonToDalas = distances[1][5]; 5
Two-Dimensional Array Illustration
6
Outline
• Introduction
• Declaring Two-Dimensional Arrays
• Processing Two-Dimensional Arrays
• Passing Two-Dimensional Arrays to
Functions
• Problem: Grading a Multiple-Choice
Test
• Multidimensional Arrays
7
Initializing Arrays with
Random Values
• Nested for loops are often used to process a two-
dimensional array.
• The following loop initializes the array with
random values between 0 and 99:
8
Printing Arrays
• To print a two-dimensional array, you have to
print each element in the array using a loop like
the following:
9
Summing All Elements
• To sum all elements of a two-dimensional
array:
int total = 0;
for (int row = 0; row < ROW_SIZE; row++)
{
for (int column = 0; column < COLUMN_SIZE;
column++)
{
total += matrix[row][column];
}
}
10
Summing Elements by Column
• For each column, use a variable named total
to store its sum. Add each element in the
column to total using a loop like this:
maxRow = totalOfThisRow;
indexOfMaxRow = row;
}
}
cout << "Row " << indexOfMaxRow
<< " has the maximum sum of " << maxRow << endl; 12
Outline
• Introduction
• Declaring Two-Dimensional Arrays
• Processing Two-Dimensional Arrays
• Passing Two-Dimensional Arrays to
Functions
• Problem: Grading a Multiple-Choice
Test
• Multidimensional Arrays
13
Passing Two-Dimensional Arrays
to Functions
PassTwoDimensionalArray Run
14
PassTwoDimensionalArray.
cpp 1/2
#include <iostream>
using namespace std;
return total;
}
15
PassTwoDimensionalArray.
cpp 2/2
int main()
{
const int ROW_SIZE = 3;
int m[ROW_SIZE][COLUMN_SIZE];
cout << "Enter " << ROW_SIZE << " rows and "
<< COLUMN_SIZE << " columns: " << endl;
for (int i = 0; i < ROW_SIZE; i++)
for (int j = 0; j < COLUMN_SIZE; j++)
cin >> m[i][j];
return 0;
}
16
Outline
• Introduction
• Declaring Two-Dimensional Arrays
• Processing Two-Dimensional Arrays
• Passing Two-Dimensional Arrays to
Functions
• Problem: Grading a Multiple-Choice
Test
• Multidimensional Arrays
17
Problem: Grading Multiple-
Choice Test
GradeExam Run
18
GradeExam.cpp 1/2
#include <iostream>
using namespace std;
int main()
{
const int NUMBER_OF_STUDENTS = 8;
const int NUMBER_OF_QUESTIONS = 10;
cout << "Student " << i << "'s correct count is " <<
correctCount << endl;
}
return 0; 20
}
Outline
• Introduction
• Declaring Two-Dimensional Arrays
• Processing Two-Dimensional Arrays
• Passing Two-Dimensional Arrays to
Functions
• Problem: Grading a Multiple-Choice
Test
• Multidimensional Arrays
21
Multidimensional Arrays
• A 1D array is simply one
row of sequential data.
• A 2D array is a group of
rows on top of one another
forming a table of rows and
columns.
• A 3D array is a group of
tables.
double scores[6][5][2];
Essay
Multiple Choice
With initialization:
double scores[6][5][2] = {
{{7.5, 20.5}, {9.0, 22.5}, {15, 33.5}, {13, 21.5}, {15, 2.5}},
{{4.5, 21.5}, {9.0, 22.5}, {15, 34.5}, {12, 20.5}, {14, 9.5}},
{{6.5, 30.5}, {9.4, 10.5}, {11, 33.5}, {11, 23.5}, {10, 2.5}},
{{6.5, 23.5}, {9.4, 32.5}, {13, 34.5}, {11, 20.5}, {16, 7.5}},
{{8.5, 26.5}, {9.4, 52.5}, {13, 36.5}, {13, 24.5}, {16, 2.5}},
{{9.5, 20.5}, {9.4, 42.5}, {13, 31.5}, {12, 20.5}, {16, 6.5}} }; 24
Outline
• Introduction
• Declaring Two-Dimensional Arrays
• Processing Two-Dimensional Arrays
• Passing Two-Dimensional Arrays to
Functions
• Problem: Grading a Multiple-Choice
Test
• Multidimensional Arrays
28