0% found this document useful (0 votes)
4 views

Arrays

Uploaded by

mayankchitra3
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views

Arrays

Uploaded by

mayankchitra3
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 22

C++ Arrays

In this article, you will learn to work with arrays. You will learn to
declare, initialize and, access array elements in C++ programming.

In programming, one of the frequently arising problem is to handle


numerous data of same type.
Consider this situation, you are taking a survey of 100 people and you
have to store their age. Now it is not possible to create 100 variables .
In case you want to store information about 1000 people. Is it possible
to have 1000 variables like
int a,b,c,d,e,f,g,h,……upto 1000 ?

To solve this problem in C++, you can create an integer array having 100
elements.
An array is a collection of data that holds fixed number of values of same
type. For example:
int age[100];
Here, the age array can hold maximum of 100 elements of integer type.
The size and type of arrays cannot be changed after its declaration.

What is an ARRAY?
Arrays in C/C++
age[0], age[2]---age[n-1] last array element –age[99]
An array in C or C++ is a collection of items stored at contiguous
memory locations and elements can be accessed randomly using indices
of an array. They are used to store similar type of elements as in the
data type must be the same for all elements. They can be used to store
collection of primitive/basic data types such as int, float, double, char,
etc of any particular type. To add to it, an array in C or C++ can store
derived data types such as the structures, pointers etc. Given below is
the picturesque representation of an array.
Why do we need arrays?
We can use normal variables (v1, v2, v3, ..) when we have a small
number of objects, but if we want to store a large number of instances, it
becomes difficult to manage them with normal variables. The idea of an
array is to represent many instances in one variable.

Array declaration in C/C++:

There are various ways in which we can declare an array. It can be done
by specifying its type and size, by initializing it or both.
Array declaration by specifying size
// Array declaration by specifying size int arr1[10];
// With recent C/C++ versions, we can also
// declare an array of user specified size
int n = 10;
int arr2[n];

int arr[n];
cout<<”enter the value of n”;
cin>>n;

Not valid
Array declaration by initializing elements
// Array declaration by initializing elements
int arr[ ] = { 10, 20, 30, 40 } // Compiler creates an array of size 4.
// above is same as "int arr[4] = {10, 20, 30, 40}"

Array declaration by specifying size and initializing elements


// Array declaration by specifying size and initializing elements
int arr[6] = { 10, 20, 30, 40 } // Compiler creates an array of size 6,
//initializes first 4 elements as specified by user and rest two elements as 0.
// above is same as "int arr[] = {10, 20, 30, 40, 0, 0}"

Advantages of an Array in C/C++:


1 Random access of elements using array index. a[55]=1234
2 Use of less line of code as it creates a single array of multiple elements.
3 Easy access to all the elements.
4 Traversal through the array becomes easy using a single loop.
5 Sorting becomes easy as it can be accomplished by writing less line of
code.

Disadvantages of an Array in C/C++:


1 Allows a fixed number of elements to be entered which is decided at
the time of declaration. Unlike a linked list, an array in C is not
dynamic.
2 Insertion and deletion of elements can be costly since the elements are
needed to be managed in accordance with the new memory
allocation.
Facts about Array in C/C++:
• Accessing Array Elements:
• Array elements are accessed by using an integer index. Array index
starts with 0 and goes till size of array minus 1.

How to declare an array in C++?


dataType arrayName[arraySize]; // one-dimensional array
For example,
float mark[5]; Here, we declared an array, mark, of floating-point type
and size 5. Meaning, it can hold 5 floating-point values.

Elements of an Array and How to access them?


You can access elements of an array by using indices.
Suppose you declared an array mark as above. The first element
is mark[0], second element is mark[1] and so on.

Few key notes:


• Arrays have 0 as the first index not 1. In this example, mark[0] is the
first element.
• If the size of an array is n, to access the last element, (n-1) index is
used. In this example, mark[4] is the last element.
• Suppose the starting address of mark[0] is 2120d. Then, the next
address, a[1], will be 2124d, address of a[2] will be 2128d and so
on. It's because the size of float is 4 bytes.

How to initialize an array in C++ programming?


It's possible to initialize an array during declaration. For example,
int mark[5] = {19, 10, 8, 17, 9};
Another method to initialize array during declaration:
int mark[] = {19, 10, 8, 17, 9}

Here,
mark[0] is equal to 19
mark[1] is equal to 10
mark[2] is equal to 8
mark[3] is equal to 17
mark[4] is equal to 9

How to insert and print array elements?


int mark[5] = {19, 10, 8, 17, 9}

// change 4th element to 9


mark[3] = 9;

// take input from the user and insert in third element


cin >> mark[2];

// take input from the user and insert in (i+1)th element


cin >> mark[i];

// print first element of the array


cout << mark[0];

// print ith element of the array


cout >> mark[i-1];

Example: C++ Array


C++ program to store and calculate the sum of 5 numbers entered
by the user using arrays.
#include <iostream.h>

int main()
{
int numbers[5], sum = 0;
cout << "Enter 5 numbers: ";

// Storing 5 number entered by user in an array


// Finding the sum of numbers entered
for (int i = 0; i < 5; ++i)
{
cin >> numbers[i];
sum += numbers[i];
}

cout << "Sum = " << sum << endl;

return 0;
}
Output
Enter 5 numbers: 3
4
5
4
2
Sum = 18

Things to remember when working with arrays in C++


Suppose you declared an array of 10 elements. Let's say,
int testArray[10];
You can use the array members from testArray[0] to testArray[9].
If you try to access array elements outside of its bound, let's say
testArray[14], the compiler may not show any error. However, this may
cause unexpected output (undefined behavior).

C++ Multidimensional Arrays


In this article, you'll learn about multi-dimensional arrays in C++. More
specifically, how to declare them, access them and use them efficiently
in your program.

In C++, you can create an array of an array known as multi-dimensional


array. For example:
int x[3][4];
Here, x is a two dimensional array. It can hold a maximum of 12
elements.
You can think this array as table with 3 rows and each row has 4
columns as shown below.

Three dimensional array also works in a similar way. For example:


float x[2][4][3];
This array x can hold a maximum of 24 elements. You can think this
example as: Each of the 2 elements can hold 4 elements, which makes 8
elements and each of those 8 elements can hold 3 elements. Hence, total
number of elements this array can hold is 24.

Multidimensional Array Initialisation


You can initialise a multidimensional array in more than one way.
Initialisation of two dimensional array
int test[2][3] = {2, 4, -5, 9, 0, 9};
c0 c1 c2
r0 2 4 -5
r1 9 0 9

Better way to initialise this array with same array elements as above.
int test[2][3] = { {2, 4, 5}, {9, 0 0}};

Initialisation of three dimensional array


int test[2][3][4] = {3, 4, 2, 3, 0, -3, 9, 11, 23, 12, 23,
2, 13, 4, 56, 3, 5, 9, 3, 5, 5, 1, 4, 9};
Better way to initialise this array with same elements as above.
int test[2][3][4] = {
{ {3, 4, 2, 3}, {0, -3, 9, 11}, {23, 12, 23, 2} },
{ {13, 4, 56, 3}, {5, 9, 3, 5}, {3, 1, 4, 9} }
};

int test[5]
Example 1: Two Dimensional Array
C++ Program to display all elements of an initialised two
dimensional array.
#include <iostream>
using namespace std;

int main()
{
int test[3][2] ;

// Accessing two dimensional array using


// nested for loops, display the elements

for(int i = 0; i < 3; ++i)


{
for(int j = 0; j < 2; ++j)
{
cout<< "test[" << i << "][" << j << "] = " << test[i][j] << endl;
}
}

return 0;
}

Output
test[0][0] = 2
test[0][1] = -5
test[1][0] = 4
test[1][1] = 0
test[2][0] = 9
test[2][1] = 1

Example 2: Two Dimensional Array


C++ Program to store temperature of two different cities for a
week and display it.
#include <iostream.h>

const int CITY = 2;


const int WEEK = 7;

int main()
{
int temperature[CITY][WEEK];

cout << "Enter all temperature for a week of first city and then second city. \n";

// Inserting the values into the temperature array


for (int i = 0; i < CITY; ++i)
{
for(int j = 0; j < WEEK; ++j)
{
cout << "City " << i + 1 << ", Day " << j + 1 << " : ";
cin >> temperature[i][j];
}
}

cout << "\n\nDisplaying Values:\n";

// Accessing the values from the temperature array


for (int i = 0; i < CITY; ++i)
{
for(int j = 0; j < WEEK; ++j)
{
cout << "City " << i + 1 << ", Day " << j + 1 << " = " << temperature[i][j] << “\t”
}
cout<<endl;
}

return 0;
}
Output
Enter all temperature for a week of first city and then second city.
City 1, Day 1 : 32
City 1, Day 2 : 33
City 1, Day 3 : 32
City 1, Day 4 : 34
City 1, Day 5 : 35
City 1, Day 6 : 36
City 1, Day 7 : 38

City 2, Day 1 : 23
City 2, Day 2 : 24
City 2, Day 3 : 26
City 2, Day 4 : 22
City 2, Day 5 : 29
City 2, Day 6 : 27
City 2, Day 7 : 23

City/temp Day1 Day2 Day3 Day4 Day5 Day6 Day7


City1 32 33 32 34 35 36 38
City2 23 24 26 22 29 27 23

Example 3: Three Dimensional Array


C++ Program to Store value entered by user in three dimensional
array and display it.
#include <iostream>

int main()
{
// This array can store upto 12 elements (2x3x2)
int test[2][3][2];

cout << "Enter 12 values: \n";

// Inserting the values into the test array


// using 3 nested for loops.
for(int i = 0; i < 2; ++i)
{
for (int j = 0; j < 3; ++j)
{
for(int k = 0; k < 2; ++k )
{
cin >> test[i][j][k];
}
}
}

cout<<"\nDisplaying Value stored:"<<endl;

// Displaying the values with proper index.


for(int i = 0; i < 2; ++i)
{
for (int j = 0; j < 3; ++j)
{
for(int k = 0; k < 2; ++k)
{
cout << "test[" << i << "][" << j << "][" << k << "] = " <<
test[i][j][k] << endl;
}
}
}

return 0;
}
Output
Enter 12 values:
1
2
3
4
5
6
7
8
9
10
11
12

Displaying Value stored:


test[0][0][0] = 1
test[0][0][1] = 2
test[0][1][0] = 3
test[0][1][1] = 4
test[0][2][0] = 5
test[0][2][1] = 6
test[1][0][0] = 7
test[1][0][1] = 8
test[1][1][0] = 9
test[1][1][1] = 10
test[1][2][0] = 11
test[1][2][1] = 12
As the number of dimension increases, the complexity also increases
tremendously although the concept is quite similar.

Example: Add Two Matrices using Multi-dimensional Arrays

#include <iostream.h>
int main()
{ int r, c, a[100][100], b[100][100], sum[100][100], i, j;
cout << "Enter number of rows (between 1 and 100): ";
cin >> r; 2
cout << "Enter number of columns (between 1 and 100): ";
cin >> c; 2
cout << endl << "Enter elements of 1st matrix: " << endl;
// Storing elements of first matrix entered by user.
for(i = 0; i < r; ++i)
for(j = 0; j < c; ++j)
{ cout << "Enter element a" << i + 1 << j + 1 << " : ";
cin >> a[i][j]; }
//Displaying the elements of first matrix
cout<<” Display the elements of Matrix a”;
for(i = 0; i < r; i++)
{ for(j = 0; j < c; j++)
{ cout<<a[i][j] <<”\t”;
}
cout<<”\n”;
}
// Storing elements of second matrix entered by user.
cout << endl << "Enter elements of 2nd matrix: " << endl;
for(i = 0; i < r; ++i)
for(j = 0; j < c; ++j)
{ cout << "Enter element b" << i + 1 << j + 1 << " : ";
cin >> b[i][j]; }
//Displaying the elements of second matrix
cout<<” Display the elements of Matrix b”;
for(i = 0; i < r; i++)
{ for(j = 0; j < c; j++)
{ cout<<b[i][j] <<”\t”;
}
cout<<”\n”;
}
// Adding Two matrices

for(i = 0; i < r; ++i)


for(j = 0; j < c; ++j)
sum[i][j] = a[i][j] +b[i][j];

cout << endl << "Sum of two matrix is: " << endl;
// Displaying the resultant sum matrix.
for(i = 0; i < r; ++i)
{ for(j = 0; j < c; ++j)

{ cout << sum[i][j] << " \t "; }


cout << “\n”;
}
cout<<”\n Transpose of the resultant matrix is=”;
for(i = 0; i < r; ++i)
{ for(j = 0; j < c; ++j)

{ cout << sum[j][i] << " \t "; }


cout << “\n”;
}

return 0;
}

Output

Enter number of rows (between 1 and 100): 2


Enter number of columns (between 1 and 100): 2
Enter elements of 1st matrix:
Enter element a11: -4
Enter element a12: 5
Enter element a21: 6
Enter element a22: 8

Display the elements of Matrix a


-4 5
6 8

Enter elements of 2nd matrix:


Enter element b11: 3
Enter element b12: -9
Enter element b21: 7
Enter element b22: 2

Display the elements of Matrix b


3 -9
7 2
Sum of two matrix is:
-1 -4
13 10
Transpose of the resultant matrix=
-1 13
-4 10

This program takes n number of element from user(where, n is specified


by user) and stores data in an array. Then, this program displays the
largest element of that array using loops.

Example: Display Largest Element of an array


#include <iostream.h>

int main()
{
int i, n;
float arr[100];

cout << "Enter total number of elements(1 to 100): ";


cin >> n;
cout << endl;

// Store number entered by the user


for(i = 0; i < n; ++i)
{
cout << "Enter Number " << i + 1 << " : ";
cin >> arr[i];
}

// Loop to store largest number to arr[0]


for(i = 1;i < n; ++i)
{
// Change < to > if you want to find the smallest element
if(arr[0] < arr[i])
arr[0] = arr[i];
}
cout << "Largest element = " << arr[0];
return 0;
}
Output
Enter total number of elements: 8

Enter Number 1: 23.4


Enter Number 2: -34.5
Enter Number 3: 50
Enter Number 4: 33.5
Enter Number 5: 55.5
Enter Number 6: 43.7
Enter Number 7: 5.7
Enter Number 8: -66.5

Largest element = 55.5


This program takes n number of elements from user and stores it in
array arr[i].
To find the largest element, the first two elements of array are checked
and largest of these two element is placed in arr[0].
Then, the first and third elements are checked and largest of these two
element is placed in arr[0].
This process continues until and first and last elements are checked.
After this process, the largest element of an array will be in arr[0]
position.

In this program, user is asked to entered the number of rows r and


columns c. The value of r and c should be less than 10 in this program.
The user is asked to enter elements of the matrix (of order r*c).

Then, the program computes the transpose of the matrix and displays it
on the screen.

Example: Find Transpose of a Matrix

#include <iostream>
int main()
{ int a[10][10], trans[10][10], r, c, i, j;
cout << "Enter rows and columns of matrix: ";
cin >> r >> c; // Storing element of matrix entered by user in array
a[][].
cout << endl << "Enter elements of matrix: " << endl;
for(i = 0; i < r; ++i)
for(j = 0; j < c; ++j)
{ cout << "Enter elements a" << i + 1 << j + 1 << ": ";
cin >> a[i][j]; } // Displaying the matrix a[ ][ ]
cout << endl << "Entered Matrix: " << endl;
for(i = 0; i < r; ++i)
for(j = 0; j < c; ++j)
{ cout << " " << a[i][j];
if(j == c - 1)
cout << endl << endl; } // Finding transpose of matrix a[][]
and storing it in array trans[][].
for(i = 0; i < r; ++i)
for(j = 0; j < c; ++j)
{ trans[j][i]=a[i][j]; }
// Displaying the transpose,i.e, Displaying array trans[][].
cout << endl << "Transpose of Matrix: " << endl;
for(i = 0; i < c; ++i)
for(j = 0; j < r; ++j)
{ cout << " " << trans[i][j];
if(j == r - 1)
cout << endl << endl; }
return 0; }

Output

Enter rows and column of matrix: 2 3


Enter elements of matrix: Enter elements a11: 1
Enter elements a12: 2
Enter elements a13: 9
Enter elements a21: 0
Enter elements a22: 4
Enter elements a23: 7
Entered Matrix: 1 2 9
0 4 7
Transpose of Matrix: 1 0
2 4
9 7

This program takes 10 words from the user and sort them in
lexicographical order

Example: Sort Words in Dictionary Order

#include <iostream.h>
int main()
{ string str[10], temp;
cout << "Enter 10 words: " << endl;
for(int i = 0; i < 10; ++i)
{ getline(cin, str[i]); }

\\sort words
for(int i = 0; i < 9; ++i)
for( int j = i+1; j < 10; ++j)
{ if(str[i] > str[j])
{ temp = str[i];
str[i] = str[j];
str[j] = temp;
}
}
cout << "In lexicographical order: " << endl;
for(int i = 0; i < 10; ++i)
{ cout << str[i] << endl; }
return 0; }

Output

Enter 10 words:
C
C++
Java
Python
Perl
R
Matlab
Ruby
JavaScript
PHP

In lexicographical order: C
C++
Java
JavaScript
Matlab
PHP
Perl
Python
R
Ruby

To solve this program, an array of string object str[10] is created


The 10 words entered by the user is stored in this array.

Then, the array is sorted in lexicographical order using nested for loop
and displayed on the screen.
#include<iostream>
#include<string.h>

int main()
{
char str[5][20], t[20];
int i, j;
cout<<"\n Enter Any Five Names : \n\n";
for(i=0; i<5; i++)
{
cout<<" ";
cin>>str[i];
}
for(i=1; i<5; i++)
{
for(j=1; j<5; j++)
{
if(strcmp(str[j-1], str[j])>0)
{
strcpy(t, str[j-1]);
strcpy(str[j-1], str[j]);
strcpy(str[j], t);
}
}
}
cout<<"\n Names Sorted in Alphabetical Order : \n\n";
for(i=0; i<5; i++)
{
cout<<" ";
cout<<str[i]<<"\n";
}
return 0;
}
Output:

You might also like