View
232
Download
2
Embed Size (px)
Citation preview
Multiple-Subscripted Array
• What it is
• How to use it
• How to declare it
• How to initialize it
Multiple-Subscripted Arrays
• Use more than one subscript (can have up to 12)
• Double-subscripted array (2 subscripts)
Double-subscripted array
• good for representing tables in memory
• one subscript is the row
• second subscript is the column
Double-subscripted array
a double-subscripted array with 3 rows and 4 columns 3 by 4 array
row 0
row 1
row 2
column 0
column 1
column 2
column 3
a[0][0] a[0][1] a[0][2] a[0][3]
a[1][0]
a[2][0]
a[1][1] a[1][2] a[1][3]
a[2][1] a[2][2] a[2][3]
array name = arow subscript
column subscript
Referencing elements in a double-subscripted array
To set the element in row 2 and column 3 to the value 4 use:
a [2] [3] = 4;
name of the arrayrow subscript
column subscript
Declaring a 3 by 4 array
int a [3] [4];
must tell compiler name, size (2 sizes) and type
all elements of the array must be the same type
any data type is fine (int, float, char, etc.)
Declaring a double-subscripted array
Must use constants to declare row and column sizes.
int a [3] [4];
char letters [2] [26];
#define ROW 3#define COLUMN 4int a [ROW] [COLUMN];
const int row = 3; const int column = 4; int a [row] column];
Initializing a double-subscripted array
const int row = 3; const int column = 4; int a [row] [column];
for (int i = 0; i < row; i++) { for (int j = 0; j < column; j++) { a [i][j] = 0; }}
Initializing a double-subscripted array with declaration
const int row = 3; const int column = 4; int a[row] [column] = {{1,2,3,4}, {1,2,3,4}, {1,2,3,4}};
2 3 41
1
1
2
2
3
3
4
4
Initializing a double-subscripted array with declaration
const int row = 3; const int column = 4; int a[row] [column] = {{1,2,3}, {1,2}, {1,2,3,4}};
2 3 01
1
1
2
2
0
3
0
4
Setting entire array to 0
const int row = 3; const int column = 4; int a [row] [column] = {0};
0 0 00
0
0
0
0
0
0
0
0
ExercisesAnswer the following questions regarding an array called table that is a double-subscripted array with 2 rows and 3 columns.
1) Define constant variables numRows and numCols to be used to declare the array.
2) Declare the array to be an integer array.
3) Use a for loop to initialize each element of the array to be the sum of it’s subscripts
4) Write a code segment to print the array as a table.
How double-subscripted arrays are stored in memory
2 3 41
5
9
6
10
7
11
8
12
123456789
101112
table
table
passing double-subscripted array to a function
Must tell function size of second subscript so it can find the beginning of each row in memory.
void PrintTable (int table [ ] [4], int numRows, int numCols) {
for (int i = 0; i < numRows; i++) {
for (int j = 0; j < numCols; j++) { cout << setw(4) << table [i] [j]; } cout << endl;}
}
passing double-subscripted array to a function
• passed as reference parameter
• Use const to prevent function changing the array.
void PrintTable (const int table [ ] [4], int numRows, int numCols);
Exercises
Write a main program as follows:Use the results of the last set of exercises to declare an array of type integers with 2 rows and 3 columns and initialize each element to the sum of it’s subscripts. Call the PrintTable function to print the array.
Create a function called PrintTable to print each element of the array in tabular form.