rows and columns (like a rectangular table of data)
int votes[3][50]; //3 rows (candidates), 50 columns (states)

- indexes always from 0 thru size-1
- Each element an int variable. Here, 3*50=150 int variables.
- Two indexes, each square-bracketed to access a particular element. [row][col]

// initialize the votes array Nested for loops is typical processing of 2D array
for (row=0; row<3; row++) // each row
for (col=0; col<50; col++) // each column, of that row
votes[row][col] = 0;
// get votes of a candidate in a state from user
cout << "Enter state number: ";
cin >> state;
cout << "Enter candidate number: ";
cin >> candidate;
// should error check these values to be sure within bounds of sizes
cout << "Enter votes rececived: ";
cin >> votes[candidate][state];
// sum of candidate 1
sum_cand1 = 0;
for (i=0; i<50; i++) // each state (each column of row 1)
sum_cand1 += votes[1][i];

### Array sizes should use symbolic constants (consts).

const int states=50, candidates=3;
int votes[candidates][states];
// initialize all elements to 0
for (i=0; i< candidates; i++) //common to use i for row
for (j=0; j< states; j++) //common to use j for column
votes[i][j] = 0;
// sum of state 9
sum_state9 = 0;
for (i=0; i< candidates; i++)
sum_state9 += votes[i][9];
// sum of state 9, alternate version, not as good
sum_state9 = votes[0][9] + votes[1][9] + votes[2][9];
// sum of votes for each candidate
int sum[candidates];
for (i=0; i< candidates; i++) //init sums to 0
sum[i] = 0;
for (i=0; i< candidates; i++)
for (j=0; j< states; j++)
sum[i] += votes[i][j];
// the winner is...
if (sum[0]>sum[1] && sum[0]>sum[2])
cout << "Winner is 0";
else if (sum[1]>sum[0] && sum[1]>sum[2])
cout << "Winner is 1";
else
cout << "Winner is 2";
// What if there is a tie for winner?
// What is the order of the 3 candidates?

Program to (start) to play checkers. checkers.cpp

Exercises:

function to count the #reds, #blacks

function to count the four surrounding neighbors

make rectangular areas intialized to some value

Next (2D array arguments)

©David Wills