Programming
Arrays
Arrays
An array is a collection of data elements that are of the
same type (e.g., a collection of integers, collection of
characters, collection of doubles).
Arrays
1-dimensional array.
Array Applications
Given a list of test scores, determine the
maximum and minimum scores.
Read in a list of student names and rearrange
them in alphabetical order (sorting).
Given the height measurements of students in a
class, output the names of those students who
are taller than average.
Array Declaration
Syntax:
<data type> <arrayName>[<array_size>]
Ex. int Ar[10];
The array elements are all values of the type <data type>
The size of the array is indicated by <array_size>, the
number of elements in the array.
<array_size> must be an int constant or a constant
expression. Note that an array can have multiple dimensions.
Array Declaration
// array of 10 uninitialized ints
int Ar[10];
Ar
--
--
--
--
--
--
--
--
--
--
Subscripting
Declare an array of 10 integers:
int Ar[10];
// array of 10 ints
To access an individual element we must apply a subscript
to array named Ar.
A subscript is a bracketed expression.
The expression in the brackets is known as the index.
First element of array has index 0.
Ar[0]
Second element of array has index 1, and so on.
Ar[1], Ar[2], Ar[3],
Last element has an index one less than the size of the array.
Ar[9]
Incorrect indexing is a common error.
Subscripting
// array of 10 uninitialized ints
int Ar[10];
--
Ar[3] = 1;
int x = Ar[3];
1
--
0
Ar
---
--
---1
------Ar[0] Ar[1] Ar[2] Ar[3] Ar[4] Ar[5] Ar[6] Ar[7] Ar[8]Ar[9]
Subscripting Example 1
//For loop to fill & print a 10-int array
#include <iostream>
using namespace std;
int main ( ) {
int index, ar[10]; // array for 10 integers
// Read in 10 elements.
cout << "Enter 10 integers: ";
for(index = 0; index < 10; index ++)
cin >> ar[index];
cout << endl;
cout << "The integers are ";
for(index = 0; index < 10; index ++)
cout << ar[index] << " ";
cout << endl;
return 0;
}
Array Element Manipulation Ex. 3
Consider
int Ar[10], i = 7, j = 2, k = 4;
Ar[0] = 1;
Ar[i] = 5;
Ar[j] = Ar[i] + 3;
Ar[j+1] = Ar[i] + Ar[0];
Ar[Ar[j]] = 12;
cin >> Ar[k]; // where the next input value is 3
0
Ar
1
-8
6
3
--5
12
-Ar[0] Ar[1] Ar[2] Ar[3] Ar[4] Ar[5] Ar[6] Ar[7] Ar[8]Ar[9]
Array Initialization Ex. 4
int Ar[10] = {9, 8, 7, 6, 5, 4, 3, 2, 1,
0};
0
Ar
Ar[3] = -1;
-1
6
0
Ar
1
8
2
7
3
-1
4
5
5
4
6
3
7
2
8
1
9
0
Program with Arrays
int main()
{
int values[5]= {11,1,3,6,10};
for (int i = 1; i < 5; i++)
{
values[i] = values[i] + values[i-1];
}
values[0] = values[1] + values[4];
}
11
10
Printing arrays
To print an array, you have to print each element in the array using a
loop like the following:
for (int i = 0; i < ARRAY_SIZE; i++)
{
cout << myList[i] << " ";
}
2-D Array Example
2-D Array Example
// 2-D array of 30 uninitialized
ints
int table[3][10];
0
1
2
----
----
----
----
----
----
----
----
----
----
2-D Array References
// 2-D array of 18 uninitialized chars
char table[3][6];
table[1][2] = 'a';
char resp = table[1][2];
table
0
1
2
----
----
-a
--
----
----
----
Ex. 1: 2-D Array Initialization
It is highly recommended, however, that you nest the data in braces to
show the exact nature of the array. For example, array table is better
initialized as :
// 2-D array of 18 initialized chars
char table[3][6]={
{'a','b','c','d','e','f'},
{'g','h','i','j','k','l'},
{'m','n','o','p','q','r'}
};
table
0
1
2
a
g
m
b
h
n
c
i
o
d
j
p
e
k
q
f
l
r
Ex. 1: 2-D Array Inputting Values
Another way to fill up the values is to read them from the keyboard. For a two-dimensional
array this usually requires nested for loops. If the array is an n by m array, the first loop
varies the row from 0 to n-1. The second loop varies the column from 0 to m -1.
const int NUM_ROWS = 3, NUM_COLS = 6;
for (int row=0; row < NUM_ROWS; row++)
for (int column = 0; column < NUM_COLS; column++)
cin>>(table[row][column]);
//input two-dimensional array
table
0
1
2
t
m
n
w
e
a
o
n
l
d
i
a
i
o
r
Ex. 1: 2-D Array Outputting Values
We can print the values of the elements one-by-one using two nested loops.
Again, if the array is an n by m array, the first loop varies the row from 0 to n-1.
The second loop varies the column from 0 to m-1.
const int NUM_ROWS = 3, NUM_COLS = 6;
for (int row=0; row < NUM_ROWS; row++)
for (int column = 0; column < NUM_COLS; column++)
cout << table[row][column];
table
0
1
2
t
m
n
w
e
a
o
n
l
d
i
a
i
o
r