# Chapter  14 – Arrays

## 14.1  One Dimensional Arrays

Sometime you may need to write a program that uses many variables.  Perhaps the program will need ten or even ten thousand variables.  Perhaps you are working with a program that reads a large quantity of data from a scientific instrument and performs statistics on this data.  In any case, it would be inefficient to declare so many variables.  It would be even more difficult working with these variables in the program.  This is where you would use an array – a set of variables, all declared using one name.  The following line declares an array of 10 integers:

int MyArray;

The first element, or integer, in the array is numbered 0.  The last element is numbered 9.  To assign the value of 42 to the first element, and the value of 61 to the second element, you would do the following assignment statements:

MyArray = 42;
MyArray = 61;

You can declare an array and assign values to the entire set of elements in one line by doing the following:

int MyArray = {42, 30, 16, 8, 27, 38, 99, 81, 7, 61};

Since the elements are numbered, arrays are ideal for using within loops to process the data.  The following for loop will print all elements of the previously declared array:

for (int X=0; X<=9; X++)
{
cout << MyArray[X] << endl;
}

The following complete program demonstrates using this array.

 Program 14.1a – One Dimensional Array #include using namespace std; int main() {   int MyArray = {42, 30, 16, 8, 27, 38, 99, 81, 7, 61};   cout << "Here are the elements in the array:\n";   for (int X=0; X<=9; X++)     cout << MyArray[X] << " ";   cout << endl;   return 0; } Output Here are the elements in the array: 42 30 16 8 27 38 99 81 7 61

You can use a for loop to parse through the elements not only for printing, but also for totaling their values. The next program uses the same ten element array and calculates the average of the elements.  We declare a variable named Total and assign it a value of 0.  The for loop steps through the array and adds the value of each element to the variable Total.  To calculate the average, simply divide Total by 10.0.

 Program 14.1b – Calculating Averages Using Arrays #include using namespace std; int main() {   int MyArray = {42, 30, 16, 8, 27, 38, 99, 81, 7, 61};   int Total = 0;   for (int X=0; X<=9; X++)     Total = Total + MyArray[X];   cout << "The average of the array elements is: "        << Total / 10.0 << endl;   return 0; } Output The average of the array elements is: 40.9

## 14.2  Multidimensional Arrays

 Coffee Espresso Cappuccino Mocha Oct. Sales 152 73 97 44 Nov. Sales 166 76 123 49 Dec. Sales 189 89 118 51

Arrays can have more than one dimension.  For example, a two dimensional array can be used for storing information in a spreadsheet that contains rows and columns.  Take a look at this table of sales data from a coffee shop.

We could declare a two dimensional array for storing these numbers as shown in the following line:

int Sales = {{152, 73, 97, 44},{166, 76, 123, 49},{189, 89, 118, 51}};

The following program will calculate the total sales of beverages for December.

 Program 14.2 – Two Dimensional Array #include using namespace std; int main() {   int Sales = {{152, 73, 97, 44},{166, 76, 123, 49},{189, 89, 118, 51}};   int TotalSales = 0;   for (int Y=0; Y<=3; Y++)     TotalSales = TotalSales + Sales[Y];   cout << "Total December beverage sales was " << TotalSales << endl;   return 0; } Output Total December beverage sales was 447

## Exercises – Chapter 14

1. Write a C++ line to declare an array of integers named Corvettes with 5 elements and assign them the following values: 1956, 1963, 1968, 1983, 1997.

2. Write a C++ line to declare an array named Days with the following values: Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday.

3. Given the following array, write a for loop that increments each element:

short int Scores = {100,40,30,90,75,60,100,0,25,80};

4. Using the array declared in the previous exercise, write a for loop that adds all the elements and stores the sum in the variable Total.