Multi Dimensional Arrays

Much of the data computers process is stored in the form of tables.

 

Hours worked/week

Employee #

Week 1

Week 2

Week 3

Week 4

1

10

10

15

15

2

25

27

26

28

3

30

30

30

30

4

40

45

42

41

5

40

35

35

35

 

Tables have rows and columns.  Columns are vertically arranged data, and rows are horizontally arranged data.

How can we represent the data in the table in C++?

We can use 5 different arrays, but do we arrange these by Employee or by week?

C++ allows us to represent table data as a two dimensional array.  The rows and columns have a matrix structure.

 

column

row

0

1

2

3

0

0,0

10

0,1

10

0,2

15

0,3

15

1

1,0

25

1,1

27

1,2

26

1,3

28

2

2,0

30

2,1

30

2,2

30

2,3

30

3

3,0

40

3,1

45

3,2

42

3,3

41

4

4,0

40

4,1

35

4,2

35

4,3

35

 

 

To declare a 2 dimensional array for the table:

int hoursperweek [5][4];

Alternately:

int rows = 5;

int columns = 4;

int hoursperweek [rows][columns];

 

In general:

datatype arrayname [numberrows][numbercolumns];

We can initialize two dimensional arrays in the declaration.

char ticTacToeBoard[3][3] = {{'x', 'x', 'o'},

                             {'o', 'o', 'x'},

                             {'x', 'o', ' '}

                            };

int A[3][4] = {8, 2, 6, 5},     //row 0
              6, 3, 1 ,0,      //row 1
              8, 7, 9, 6};     //row 2

 

Problem:  The employee table is stored in a file.

1.      Read the values into a 2 dimensional array

2.      Print:

a.       The average hours worked per week

b.      The average number of hours worked per employee

Three dimensional arrays

 

const int rows = 3;

const int columns = 4;

const int rank = 2;

int dim3 [rows][columns][rank]

 

Need 3 loops to process a three dimensional array.

Need n loops to process an n dimensional array.